下面是一个复制我的滞后问题的例子。在EditTextView上设置文本后,至少需要1.5秒才能允许用户输入另一个字符。
amountEditText.addTextChangedListener(new TextWatcher() {
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override public void afterTextChanged(Editable s) {}
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {
String amount = s.toString();
if( !amount.equals(current )) {
amountEditText.removeTextChangedListener(this);
amountEditText.setText(s);
Selection.setSelection(amountEditText.getText(), amountEditText.getText().length());
amountEditText.addTextChangedListener(this);
}
}
});
我已经四处寻找并且没有找到解决方案。
答案 0 :(得分:0)
它会滞后,因为您删除然后读取了您的侦听器。
答案 1 :(得分:0)
您似乎正在尝试选择EditText中的文本。为此,只需在xml中设置editText.setSelectAllOnFocus(true);
或android:selectAllOnFocus="true"
即可。然后从代码中删除整个TextChangedListener。
答案 2 :(得分:0)
据我所知,这很可能是因为每次尝试删除(amountEditText.removeTextChangedListener(this);
)并添加(amountEditText.addTextChangedListener(this);
)文本更改侦听器。我建议您在没有添加和删除代码的情况下替换代码。
希望这会有所帮助。
答案 3 :(得分:0)
我发现问题来自textView.setText()调用。
解决方案是不使用setText(),而是使用onTextChanged回调中提供给你的Editable。
我之前尝试使用Editable,但是我无法使用" $ 12,000"等输入。
这是因为InputFilters仍然附加到Editable。
此致 斯科特。