Я использую View.OnKeyListener для EditText, чтобы что-то сделать, когда некоторые специальные клавиши нажаты/коснулись. Вот shorthened версия кода:View.OnKeyListener для мягкой клавиатуры
public class MyKeyListener implements View.OnKeyListener{
// ...
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if (keyCode == KeyEvent.KEYCODE_DEL) {
// do some processing
return true;
} else if (keyCode == KeyEvent.KEYCODE_0) {
// do another processing
return true;
}
}
}
}
Проблема заключается в том, что OnKeyListener, согласно документации, только гарантированно будет вызываться, когда используются жесткие клавиатуры. И, действительно, я тестировал его на некоторых телефонах, где он не работает для мягких клавиатур. Поэтому мне было интересно, есть ли что-то подобное этому слушателю, которое будет работать на мягких клавиатурах.
Правильный слушатель использовать для мягких клавиатур OnKeyboardActionListener https://developer.android.com/reference/android/inputmethodservice/KeyboardView.OnKeyboardActionListener.html – Ian