Android.Клавиша Backspace / Delete не работает. - PullRequest
3 голосов
/ 17 января 2012

Когда onKeyListener установлен, клавиша Backspace / delete не работает.

Я установил OnKeyListener на свой EditText.Тогда действия некоторых клавиш по умолчанию перестали действовать.Нравится DELETE / Backspace.Затем я изменил свою собственную функцию удаления текста, манипулируя строкой внутри.Но это кажется довольно сложным.

Я должен получить выделение, создать подстроку и так далее.Существуют ли другие решения для нормальной работы ключа?

Ответы [ 3 ]

3 голосов
/ 17 января 2012

Это зависит от того, какой IME вы используете. Некоторые IME реализуют функцию удаления без отправки KEYCODE_DEL. Попробуйте другой IME, чем по умолчанию.

Например, если вы нажмете кнопку DEL достаточно долго, какой-то IME удалит весь текст в поле редактирования. Это не может быть сделано через KEYCODE_DEL.

1 голос
/ 14 февраля 2017

У меня тоже была эта проблема, я решил ее, вернув false в функции onKeyListener.Это должно выполнить обычные операции с другими ключами.

.setOnKeyListener(new DialogInterface.OnKeyListener() 
{
     @Override public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) 
     {
        //your workarounds;
        return false;
     }
})
0 голосов
/ 17 января 2014

Существуют две известные проблемы, влияющие на KEYCODE_DEL для клавиатуры Google по умолчанию (LatinIME), которая поставляется с Android: проблемы 42904 и 62306.

Я исследовал это и разработал обходной путь с кодом, который, кажется,обойти обе эти проблемы.Этот обходной путь можно найти здесь:

Android - не удается перехватить нажатие на клавишу возврата / удалить в программном обеспечении.клавиатура

...