0

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

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

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

4

1 回答 1

-1

您是否尝试过请求关注 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();

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

于 2013-03-05T14:30:06.973 回答