Что эквивалентно OnInputListener в Android
У меня есть editText в Android, и я хотел бы слушать, когда ввод или текст был добавлен.
Я устанавливаю текст динамически, и я хочу ситуации, когда, как только это будет сделано, запускается новое событие.
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 ответ
Ну, дело в том, что ваш код кажется правильным, единственное, что сделано неправильно, это порядок.
Практически, вы хотите знать, когда текст 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);
Таким образом, вы изменяете текст, как только у вас есть слушатель, а не раньше. Это должно решить вашу проблему.
PS: я не уверен, как вы объявляете свой textView, не обращайте внимания на имя переменных, в настоящее время нет вдохновения.