【发布时间】: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