我在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等价物。谢谢
答案 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,不介意变量名称,此刻没有灵感。