Что эквивалентно 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, не обращайте внимания на имя переменных, в настоящее время нет вдохновения.

Другие вопросы по тегам