我正在尝试保存在 EditText 上键入的内容。当用户输入一些文本时,文本观察器工作正常。当用户删除文本时,文本观察器可以正常工作,直到用户删除最后一个字符。
answerEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
saveAnswer(editable.toString())
}
});
当最后一个字符被删除时,saveAnswer 期望得到的是一个空字符串。但实际结果是没有触发。
最佳答案
使用 TextWatcher 和 onTextChange 方法来跟踪用户输入,当用户第一次在观察器中写入内容时,然后自己存储文本并自己不断检查差异。由于每次用户更改字符时都会触发 onTextChanged。
String userInputText=userText.getString().toString();
@Override
onTextChanged(CharSequence s, int start, int before, int count){
compareText(s, userInputText); //compare and do whatever you need to do
previousText = s;
}
关于java - 当我们退格删除最后一个字符时,TextWatcher 覆盖不会被调用。我如何知道最后一个字符是否被删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58542161/