Android-每次更改后更改Edittext

标签 android android-edittext textwatcher

我如何在 edtitext 的每次更改后添加 Char,例如这个破折号 '-' 例如,如果用户输入 A,则 edittext 中的文本将为 A- 然后用户将完成并输入 Char B,然后 edittext 将为A-B 如何实现?谢谢

name = (EditText)findViewById(R.id.editText1);
        name.addTextChangedListener(new TextWatcher(){
             public void afterTextChanged(Editable s) {

                 name.setText("-");
                }
     public void beforeTextChanged(CharSequence s, int start, int count, int after){}
       public void onTextChanged(CharSequence s, int start, int before, int count){


               }

最佳答案

Android Doc 中描述的是无限循环

but be careful not to get yourself into an infinite loop, because any changes you make will cause this method to be called again recursively.

所以你所要做的只是强加一个条件来避免无限循环。例如,

name.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable s) {
            if(s.charAt(s.length()-1)!='-'){
                s.append("-");
            }

        }

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

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

    });

关于Android-每次更改后更改Edittext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7459966/

相关文章:

android - 在android中编辑文本焦点

android - 使用 TextWatcher 时退格键无法正常工作

android - 在弹出窗口android中的EditText上添加TextChangedListener()

带搜索栏的 Android 密码强度检查器

java - Java+Kotlin Android 项目中 Kotlin 文件中 Unresolved 引用错误

android - 在 Jetpack Compose 中按字体的上升而不是基线对齐两个文本

java - 当我播放 Activity 中的音乐时,背景音乐不会停止?

android - 安卓浏览器的操作栏

android - 在 API Q+ 上,EditText 的自定义光标可绘制被忽略

android - appcompat 中带有 ActionBar 的自定义布局导致内容与操作栏重叠