vanesxl
@vanesxl

Как отследить клавишу Backspace?

Здравствуйте, у меня есть поле EditText. В него можно вводить только целые числа. Мне нужно активировать кнопку если длина введенных данных больше 0 и соответственно блокировать если она ровна нулю.
Я Пытаюсь сделать так:
editNumberRace = (EditText)findViewById(R.id.editText2);

        View.OnKeyListener onKeyListener = new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {

                if(editNumberRace.toString().length()>0){
                    //делаем что то
                }
                else {
                    //делаем что то
                }
                return false;
            }
        };

        editNumberRace.setOnKeyListener(onKeyListener);

Все работает если вводить данные, но если символы удалять нажимая на клавишу Backspace, то почему то никакого события не происходит в принципе. Из этого получается что если этой клавишей удалить всю строку то моя кнопка не блокируется.
Как мне это реализовать?
Заранее большое спасибо!
  • Вопрос задан
  • 473 просмотра
Решения вопроса 1
Ewintory
@Ewintory
Java / Android developer
Отслеживать не нужно. Нужно просто использовать правильные инструменты. Для работы с EditText есть специльный TextWatcher.
editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                // TODO Auto-generated method stub
            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
            }
        });
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы