Android EditText 应用在 TextWatcher 中调用 clear 时冻结
Android EditText app freezes on calling clear inside TextWatcher
我的应用在调用 clear onTextChanged TextWatcher 时冻结
以下是我的代码
materialEditText.addTextChangedListener(new TextWatcher() {
@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(s.toString().equals("$")){
materialEditText.getText().clear();
}
else if(!s.toString().contains("$")){
materialEditText.setText("$"+s);
Selection.setSelection(materialEditText.getText(), materialEditText.getText().length());
}
}
下一行导致冻结如何解决?
materialEditText.getText().clear();
在 editText
的 onTextChanged()
中调用 setText()
将导致无限循环。您需要通过使用标志或其他任何方式来解决 setText()
问题。仅在未更新时更新文本。这样它就不会进入无限循环
我的应用在调用 clear onTextChanged TextWatcher 时冻结
以下是我的代码
materialEditText.addTextChangedListener(new TextWatcher() {
@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(s.toString().equals("$")){
materialEditText.getText().clear();
}
else if(!s.toString().contains("$")){
materialEditText.setText("$"+s);
Selection.setSelection(materialEditText.getText(), materialEditText.getText().length());
}
}
下一行导致冻结如何解决?
materialEditText.getText().clear();
在 editText
的 onTextChanged()
中调用 setText()
将导致无限循环。您需要通过使用标志或其他任何方式来解决 setText()
问题。仅在未更新时更新文本。这样它就不会进入无限循环