自定义键盘快捷键

时间:2012-09-03 15:23:33

标签: android keyboard keyboard-shortcuts shortcuts ctrl

我希望我的应用支持键盘快捷键。许多设备(例如Asus Transformer)具有外部键盘,其具有 Ctrl 键(在API级别11上可用)。我做了一些代码,检查 Ctrl 键是否在模拟器中起作用:

@Override
public boolean dispatchKeyEvent(KeyEvent event) {
    if(Build.VERSION.SDK_INT>10 &&
        event.getAction()==KeyEvent.ACTION_DOWN &&
        event.isCtrlPressed()){
    String actionType="NONE";
    final int keyCode = event.getKeyCode();
    switch(keyCode){
    case KeyEvent.KEYCODE_C:
        actionType = "COPY";
        break;
    case KeyEvent.KEYCODE_V:
        actionType = "PASTE";
        break;
    case KeyEvent.KEYCODE_X:
        actionType = "CUT";
        break;
    case KeyEvent.KEYCODE_R:
        actionType = "REFRESH";
        break;
    case KeyEvent.KEYCODE_A:
        actionType = "SELECT ALL";
        break;
    }
    Toast.makeText(ctx, actionType, Toast.LENGTH_SHORT).show();
    return true;
    }
    return super.dispatchKeyEvent(event);
}

不幸的是它在模拟器中不起作用,我无法在真实硬件上检查它。

我有两个问题:
1.它会在像Asus Transformer这样的设备上运行吗? 2.为什么 Ctrl 键在模拟器中不起作用?

编辑:我试图找到问题的答案或解决方案,但Google和SO都没有帮助。

1 个答案:

答案 0 :(得分:1)

  

<强> 1。它会在Asus Transformer等设备上运行吗?

我已经使用物理键盘(来自 Asus 的标准扩展坞)检查了我的 Asus Transformer TF101 ,并且您的代码正常。我认为你可以毫无问题地使用它。

  

<强> 2。为什么CTRL键在模拟器中不起作用?

查看list of buttons that can be mapped(例如使用emulator -keyset)我不认为当前版本的模拟器支持直接Ctrl键映射,所以你在这里运气不好。