【问题标题】:Custom keyboard shortcuts自定义键盘快捷键
【发布时间】:2012-08-28 08:24:39
【问题描述】:

我希望我的应用支持键盘快捷键。许多设备,例如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 都没有帮助。

【问题讨论】:

  • 大多数设备上没有 CTRL 键(至少大多数软键盘上没有)
  • 但是带有 CTRL 键的硬件键盘呢?

标签: android keyboard keyboard-shortcuts shortcuts ctrl


【解决方案1】:

1.它可以在像 Asus Transformer 这样的设备上运行吗?

我用物理键盘(Asus 的标准扩展坞)检查了我的 Asus Transformer TF101,并且您的代码运行良好。我认为您可以毫无问题地使用它。

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

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

【讨论】:

  • 感谢您的回复!那是好消息。我认为添加更改修饰键的选项是个好主意,以便为所有拥有 Android 设备键盘的人提供支持。
猜你喜欢
  • 2012-07-16
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多