Ria*_*Ria 44 android android-edittext
我有一个EditText带"text = 0.00".当我按下数字3时,应该是0.03第二次当我按下数字5时,文本应该是0.35.而且35.0,35.09像这样.在EditText最初具有的价值0.00.
这些都是用同样的方法完成的EditText.
我该如何实现这一目标?我已经尝试使用addTextChangedListener()带TextWatcher().
Kha*_*aza 93
你也可以试试这个:
EditText searchTo = (EditText)findViewById(R.id.medittext);
searchTo.addTextChangedListener(new TextWatcher() {
@Override
public void afterTextChanged(Editable s) {
// 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 onTextChanged(CharSequence s, int start, int before, int count) {
doSomething();
}
});
Run Code Online (Sandbox Code Playgroud)
Rol*_*no1 37
您选择了正确的方法.你必须与TextWatcher和覆盖扩展类afterTextChanged(),beforeTextChanged(),onTextChanged().
您必须在afterTextChanged()方法中编写所需的逻辑,以实现您所需的功能.
在这里,我写了类似于你需要的东西:
inputBoxNumberEt.setText(". ");
inputBoxNumberEt.setSelection(inputBoxNumberEt.getText().length());
inputBoxNumberEt.addTextChangedListener(new TextWatcher() {
boolean ignoreChange = false;
@Override
public void afterTextChanged(Editable s) {
}
@Override
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if (!ignoreChange) {
String string = s.toString();
string = string.replace(".", "");
string = string.replace(" ", "");
if (string.length() == 0)
string = ". ";
else if (string.length() == 1)
string = ". " + string;
else if (string.length() == 2)
string = "." + string;
else if (string.length() > 2)
string = string.substring(0, string.length() - 2) + "." + string.substring(string.length() - 2, string.length());
ignoreChange = true;
inputBoxNumberEt.setText(string);
inputBoxNumberEt.setSelection(inputBoxNumberEt.getText().length());
ignoreChange = false;
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92848 次 |
| 最近记录: |