Android IME: как показать всплывающее диалоговое окно?

Я поэкспериментируйте с некоторыми разработками клавиатуры и попытайтесь показать всплывающее диалоговое окно при нажатии определенной клавиши

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, которая делает именно это: показывает всплывающее диалоговое окно при нажатии специальной клавиши на клавиатуре.

Swype pop-up dialog

5
задан znq 17 August 2010 в 12:54
поделиться