0

在我的应用程序中,我必须以编程方式禁用EditText 和更改文本EditText,问题是我想EditText收听我添加的 TextWatcher EditText

EditText不是监听者。

所以任何人都可以请帮助启用EditText监听,TextWatcher而它被禁用并且文本以EditText编程方式填充为不通过KeyBoard

我尝试了下面的代码

txtShift.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) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {
            // TODO Auto-generated method stub
            if (s.length()>0) {
                keyPadOnOff(false);
            }else {
                keyPadOnOff(true);

            }       
        }
    });

谢谢

4

3 回答 3

0

您可以使用此行启用 TextWatcher:

txtShift.removeTextChangedListener(textWatcher);

你可以从:

txtShift.addTextChangedListener(textWatcher);

TextWatcher textWatcher = new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            // TODO Auto-generated method stub

        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void afterTextChanged(Editable s) {

            if (s.length()>0) {
                keyPadOnOff(false);
            }else {
                keyPadOnOff(true);
            }

        }
    };
于 2016-08-24T15:10:07.227 回答
0

在谷歌挖了这么多之后,我发现我们无法让EditText观察者听

et.setFocusable(false);
et.setClickable(false);

所以我所做的就是在我EditText从代码中填充文本时触发事件。

于 2015-11-05T05:17:40.370 回答
0

检查以下内容

  1. 你要导入这一行吗?- import android.text.TextWatcher;
  2. 您是否正确初始化了 EditText?
  3. 在方法上设置 Log.v - afterTextChanged(Editable s) 并首先检查它。

    public void afterTextChanged(Editable s) {

    Log.v(TAG,"AfterTextChanged 工作");

    }

  4. 如果第三点正确获得日志值。错误在方法 keyPadOnOff(boolean)

5.检查方法keyPadOnOff(boolean)。

于 2015-11-04T06:38:09.947 回答