android - 使用 TextWatcher 检测最后删除的文本

标签 android android-edittext textwatcher

我有一个 EditText 和一个 TextWatcher

我正在其中输入数字,如果最后一个文本被删除,我想用 0 填充该字段。

如何使用TextWatcher的三种方法?

    input.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            double value=Double.parseDouble(input.getText().toString());//here it will throw error if no text there. 
            //I do not only want to catch this exception and do something with it, but I want to detect this event and if it happens I want to try some solution to stop it.
        }
    });

最佳答案

在 afterTextChanged 方法中...放入 if block 以查看它是否为空。另外,不要使用输入编辑框,而是使用方法参数中的 Editable 。

if (s.toString()!=null && s.toString().trim().equals("")==false){
   double value=Double.parseDouble(s.getText().toString());
}else{
   double value = 0;
}

关于android - 使用 TextWatcher 检测最后删除的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26154651/

相关文章:

android - 如何在 React Native 中开发时间轴屏幕

android - DialogFragment 中的 ViewPager2 内的 EditText 不会显示键盘

Android EditText 值到整数

java - TextWatcher 中的编辑文本问题

android - 修复 Android 中 EditText 的值限制?

java - Android Studio 无法找到有效的 Jvm(与 MAC OS 相关)

java - JNI + 类型转换(例如,Signed Short 到 Unsigned Short)

android - 如何使用 gradle 上传多个模块的存档?

java - OnRetainCustomConfigurationInstance 之后所有编辑文本中的重复文本

java - 自动删除 EditText 任何文本的前导空格?