我正在进行一些键盘开发,尝试在按下某个特定的键时显示弹出对话框。
if (primaryCode == -301) {
AlertDialog mDialog = new AlertDialog.Builder(CONTEXT)
.setTitle("My dialog")
.setMessage("Lets do it.")
.setPositiveButton("ok", null).create();
mDialog.show();
}
然而,问题在于
CONTEXT
部分。在正常应用程序中,它只是this
。我也尝试了getApplicationContext()
和getBaseContext()
,但两者都不起作用->键盘崩溃。
所以我想知道是否需要对InputConnection做些什么:android.view.WindowManager$BadTokenException:无法添加窗口--令牌null不是应用程序
到目前为止,我还没能弄清楚该怎么做。我绝对知道这是可能的,因为我以前见过。如果有人能指点我正确的方向,那肯定会感激不尽。InputConnection接口是从InputMethod返回到接收其输入的应用程序的通信通道。它用于执行诸如在光标周围读取文本,提交文本到文本框以及将原始按键事件发送到应用程序等操作。
更新: 为了更好地说明我的目标,我上传了Swype键盘的屏幕截图,它正是这样做的:当键盘上按下特殊键时,显示一个弹出对话框。