【发布时间】:2011-03-30 11:57:15
【问题描述】:
我正在玩一些键盘开发,并尝试在按下某个键时显示一个弹出对话框
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(),但这些都不起作用-> 键盘崩溃。
android.view.WindowManager$BadTokenException: 无法添加窗口 - 令牌 null 是 不是为了申请
所以我想知道我是否必须对 InputConnection 做点什么:
InputConnection 接口是 从一个沟通渠道 InputMethod 返回应用程序 那就是接收它的输入。它是 用于执行诸如阅读之类的事情 光标周围的文本,提交 文本到文本框,并发送原始 应用程序的关键事件。
到目前为止,我无法弄清楚如何。我绝对知道这是可能的,因为我以前见过。我有人可以为我指出正确的方向,这肯定会受到赞赏。
更新:
为了更好地了解我尝试实现的目标,我上传了 Swype 键盘的屏幕截图,它的作用正是:当键盘上的特殊键被按下时会显示一个弹出对话框。
【问题讨论】: