什么是Android中的OnInputListener

时间:2016-08-30 10:49:29

标签: java android android-edittext textwatcher

我在android中有一个editText,我喜欢在添加输入或文本时收听。

我正在动态设置文本,我想要一种情况,一旦完成,就会触发一个新事件。

 code.setText(savedcode);

code.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) {
                    Toast.makeText(Verification.this, "New Input" , Toast.LENGTH_SHORT ).show();
                }

                @Override
                public void afterTextChanged(Editable editable) {

                }
            });

我已经使用了文本观察者,但是当动态设置输入时它不会触发事件,除非我编辑字段然后它。我知道在javascript中,输入监听器可以做到这一点,所以我正在寻找它的android等价物。谢谢

1 个答案:

答案 0 :(得分:0)

嗯,问题是您的代码似乎是正确的,但错误的一件事就是订单。

实际上,您想知道textView的文本何时发生了变化,但是在向其添加文本之前进行了更改。

所以合乎逻辑的方法是:

TextView TV;

TV = (TextView) rootView.findViewById(R.id.theID);

TV.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) {
                Toast.makeText(Verification.this, "New Input" , Toast.LENGTH_SHORT ).show();
            }

            @Override
            public void afterTextChanged(Editable editable) {

            }
        });

TV.setText(savedcode);

通过这种方式,您可以在实际拥有侦听器之后更改文本,而不是之前。这应该可以解决您的问题。

P.S:我不确定你如何声明你的textView,不介意变量名称,此刻没有灵感。