OnKeyboardActionListener предназначен для реализации программных клавиатур.
OnKeyListener и OnKeyDown не вызываются, как вы обнаружили, при использовании программной клавиатуры. Их вызывают только при использовании аппаратной клавиатуры, которой нет на многих устройствах Android.
Я предполагаю, что вы пытаетесь захватить ключевые события, происходящие в области EditText. В этом случае лучше всего обрабатывать как программный, так и аппаратный ввод клавиатуры: зарегистрировать TextWatcher с помощью метода addTextChangedListener ().
Обратите внимание, что на телефонах с Android 2.1 и более поздними версиями, таких как Nexus One, пользователи могут использовать распознавание речи для ввода текста в текстовый файл EditText вместо ввода текста. Когда они это сделают, вы можете получить полные слова или даже полные предложения, введенные сразу. Поэтому вам нужно проверить все содержимое поля EditText при изменении содержимого.