dispatchKeyEvent对PopupWindow中的EditText没有影响

时间:2013-01-17 23:40:52

标签: java android popupwindow

我有一个包含一些EditTexts的弹出窗口。我想在弹出窗口中创建自定义数字键盘。所以我有10个按钮代表数字0-9。内部按钮'onClickListener我尝试调度键事件

public void onClick(View v) {
    dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_0));
}

但它对EditTexts没有影响。我试着用可聚焦的等于真和假来做,但结果是一样的。当我尝试在活动的主要布局中调度关键事件时,它运行良好,那么我应该更改什么以使我的代码在弹出窗口中工作?

1 个答案:

答案 0 :(得分:0)

您是否尝试过关注EditTexts?不仅使用

editText.setFocusable(true);

但也

editText.requestFocus();

我认为这也有可能因为你没有先注入DOWN事件而无效。请尝试以下方法:

Instrumentation mInstrumentation = new Instrumentation();
final Thread t = new Thread() {
     public void run(){ 
              mInstrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_0);               
     };
t.start();

这将注入一个事件,该事件将由具有焦点的视图处理