EditText afterTextChanged(可编辑视图)处理程序在文本更改后未获取必要的文本值

时间:2015-11-10 22:29:34

标签: android android-activity android-5.0-lollipop

已经在android中开发了一段时间,但这不是我遇到的事情。我的视图上有一个名为adText的EditText对象,我使用以下代码段成功将其连接到事件处理程序:

final EditText adPrice = (EditText) findViewById(R.id.textFieldAd);

adPrice.addTextChangedListener(new TextWatcher() {
        @Override
        public void afterTextChanged(Editable view) {

        }

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

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

这是我的问题:如果我在EditText字段中的任何[A-Z] [a-z]后面输入一个空格(“”)字符,我就不会返回包含我输入的空格的文本视图。

因此,例如,假设我在EditText字段“723ab”中有以下文本。如果我在afterTextChanged中放置一个断点并在文本字段中输入以下内容:“”,afterTextChanged中的文本值将为“723ab”。此外,当我输入“”时,光标不会向前移动。这就像在EditText字段上有某种文本过滤器(我已经找过了,并且不存在这样的过滤器)。

此外,如果我有以下我的EditText字段“723”,并且我输入“”,光标向前移动,我的afterTextChanged监听器就像我期望的那样选择“723”。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

因此,问题的结果就是这样:如果在EditText中输入一个字母之后的空格,那么afterTextChanged将被称为TWICE。第一次不包括更新的字符串,最后包含空格,但第二次将包括它。如果有人知道为什么Android选择为文本更改事件实现此功能,我会非常好奇。