Я поэкспериментируйте с некоторыми разработками клавиатуры и попытайтесь показать всплывающее диалоговое окно при нажатии определенной клавиши
if (primaryCode == -301) {
AlertDialog mDialog = new AlertDialog.Builder(CONTEXT)
.setTitle("My dialog")
.setMessage("Lets do it.")
.setPositiveButton("ok", null).create();
mDialog.show();
}
. Однако проблема заключается в части CONTEXT
. В обычном приложении это будет просто это
. Я также пробовал getApplicationContext ()
и getBaseContext ()
, но ни одна из этих работ -> сбой клавиатуры.
android.view.WindowManager $ BadTokenException: Невозможно добавить окно - токен нулевой не для приложения
Поэтому мне интересно, нужно ли мне что-то делать с InputConnection :
Интерфейс InputConnection является канал связи от InputMethod обратно в приложение который получает свой вклад. это используется для выполнения таких вещей, как чтение текст вокруг курсора, фиксация текст в текстовое поле и отправка необработанных ключевые события в приложении.
До сих пор я не мог понять, как. Я точно знаю, что это возможно, так как я видел это раньше. Кто-то может указать мне правильное направление, которое, безусловно, будет оценено.
Обновление:
Чтобы получить лучшее представление о том, чего я пытаюсь достичь, я загрузил скриншот клавиатуры Swype, которая делает именно это: показывает всплывающее диалоговое окно при нажатии специальной клавиши на клавиатуре.