Android 中 OnInputListener 的等价物是什么
What is the equivalent of OnInputListener in Android
我在 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 等价物。谢谢
好吧,问题是你的代码似乎是正确的,唯一做错的是顺序。
实际上,您想知道 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);
通过这种方式,一旦您真正拥有一个监听器,您就可以更改文本,而不是 before.That 应该可以解决您的问题。
P.S: 我不知道你是怎么声明你的textView的,不要介意变量名,暂时没有灵感。
我在 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 等价物。谢谢
好吧,问题是你的代码似乎是正确的,唯一做错的是顺序。
实际上,您想知道 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);
通过这种方式,一旦您真正拥有一个监听器,您就可以更改文本,而不是 before.That 应该可以解决您的问题。
P.S: 我不知道你是怎么声明你的textView的,不要介意变量名,暂时没有灵感。