java - 当我们退格删除最后一个字符时,TextWatcher 覆盖不会被调用。我如何知道最后一个字符是否被删除?

标签 java android

我正在尝试保存在 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/

相关文章:

java - SPRING - CORS 中 ORIGIN 的含义是什么

java.lang.ClassCastException : org. apache.xerces.jaxp.SAXParserFactoryImpl 与 javax.xml.parsers.SAXParserFactory 不兼容

java - 在 Spring boot JWT Plus Oauth2 中,TokenStore findTokensByClientId(clientId) 返回空白数组(我想要 Activity token )

android - 转到 API <= 10 中的新 Activity 时如何清除后台堆栈

java - 自上次重启以来的时间 : how can i convert?

java - 谷歌视觉 : setRequestPreviewSize no effect

java - Apache Spark 作业因 FileNotFoundExceptoin 而失败

android - u + 2714 chechmark在android中显示不同的形状和颜色

android - 调用 fragment 时只显示白屏

Android:如何最大化 PreferenceFragment 宽度(或摆脱边距)?