TextWatcher
让我的EditText
太慢了。在我做了一些检查之后,唯一导致这种情况发生的是每当我执行涉及 UI 的操作时;任何不涉及 UI 的其他操作都不会导致延迟。
它应该是非常简单的方法,所以我一定不明白一些东西:
editText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence likers, int arg1, int arg2, int arg3) { }
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { }
@Override
public void afterTextChanged(Editable arg) {
String text = arg.toString().trim();
mTextView2.setText(" "+text +" ");
mTextView1.setText(" "+text +" ");
}
});
是什么导致了延迟,我应该怎样做才能消除延迟?
最佳答案
您需要使用 Editable
变量进行所需的更改,这就是重点。
与 Editable
相比,String
操作非常慢。
确保在更改之前删除 textChangedListener
并在更改之后将其放回原处,否则会进入循环。
关于android - 当要求更新 ui 时 TextWatcher 滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305113/