Очистить все содержимое EditText при долгом нажатии клавиши Backspace?

Итак, у меня есть EditText с inputType как numberDecimal (я не думаю, что это имеет значение, но неважно) ... Я хочу, чтобы, когда я нажимаю и удерживаю клавишу возврата (долгое нажатие), все числа в EditText удаляются сразу вместо того, чтобы быстро по одному, как это происходит в настоящее время. Это возможно? Единственный поток, который я смог найти по этой проблеме, - это это, но я попытался реализовать это решение (переопределив onKeyLongPress()), и этот метод никогда не вызывается.

Вы тестируете устройство с физической кнопкой возврата? Я протестировал метод onKeyLongPress() на двух устройствах - одно с физической кнопкой возврата, и это работает. На другом устройстве есть экранная кнопка «Назад», и метод onKeyLongPress() не вызывается.

Barns 10.08.2018 02:38

Тестирование @Barns на эмуляторе и моем личном устройстве (Pixel XL). У обоих нет физических кнопок возврата, они являются экранными кнопками возврата. Есть ли сейчас на каком-нибудь современном устройстве Android физические кнопки возврата?

nicoqueijo 10.08.2018 02:42

Возможно нет! У меня несколько устройств, и только одно (с Marshmallow 6.0) имеет физическую кнопку возврата. На устройствах без физической кнопки возврата я получаю срабатывание метода onKeyDown(), но не onKeyLongPress(). Я видел одну реализацию, в которой кнопка «удалить» на программных клавишах использовалась для наблюдения за onKeyLongPress(), а затем для удаления всех символов в представлении EditText, которое, на мой взгляд, более интуитивно понятно.

Barns 10.08.2018 03:20
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
176
1

Ответы 1

editText.setOnKeyListener(new OnKeyListener() {                 
    @Override
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        //You can identify which key pressed buy checking keyCode value with KeyEvent.KEYCODE_
        if (event.getAction() == KeyEvent.ACTION_DOWN && event.getKeyCode() == KeyEvent.KEYCODE_DEL) {  
            //this is for backspace
        }
        return false;       
    }
});

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