[英]How to append $ when user enter any amount into the editText?
當用戶在EditText
輸入任何數字值然后在文本之前輸入 $ append()
時,我的應用程序。 任何幫助將不勝感激...非常感謝...
嘗試使用TextWatcher
如下:
EditText editbox = (EditText)findViewById(R.id.editText1);
editbox.addTextChangedListener(new TextWatcher(){
@Override
public void afterTextChanged(Editable s){
if(s.toString().length() > 0 && s.toString().charAt(0) != '$'){
StringBuilder b = new StringBuilder(s.toString());
b = b.reverse();
b.append('$');
b = b.reverse();
editbox.setText(b);
editbox.setSelection(editbox.getText().length());
}
int counter = 0;
for (int i = 0; i < s.toString().length(); i++) {
if (s.toString().charAt(i) == '$') {
counter++;
}
}
if (counter > 1) {
String str = s.toString().replace("$", "").trim();
str = str.replaceAll("\\s+", "");
StringBuilder b = new StringBuilder(str);
b = b.reverse();
b.append('$');
b = b.reverse();
edit.setText(b);
edit.setSelection(edit.getText().length());
} else {
int spaceCount = 0;
for (int i = 0; i < s.toString().length(); i++) {
if (s.toString().charAt(i) == ' ') {
spaceCount++;
}
}
if (spaceCount > 0) {
String str = s.toString().replace("$", "").trim();
str = str.replaceAll("\\s+", "");
StringBuilder b = new StringBuilder(str);
edit.setText(b);
edit.setSelection(edit.getText().length());
}
}
}
});
另一種方法是將TextWatcher
與某種正則表達式結合起來。
使用以下代碼
ed.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if(ed.getText().toString().length()>1)
{
ed.setText("$"+ed.getText().toString());
}
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.