自定义快捷键 [英] Custom keyboard shortcuts

查看:204
本文介绍了自定义快捷键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想我的应用程序,支持键盘快捷键。许多设备,如华硕变压器有外部键盘有<大骨节病>控制键(可在API等级11)。我做了一些code,以检查是否<大骨节病>控制在模拟器重点工作:

  @覆盖
公共布尔dispatchKeyEvent(KeyEvent的事件){
    如果(Build.VERSION.SDK_INT→10&安培;&安培;
        event.getAction()== KeyEvent.ACTION_DOWN&安培;&安培;
        event.isCtrl pressed()){
    串操作类型=NONE;
    最终诠释键code = event.getKey code();
    开关(钥匙code){
    案例KeyEvent.KEY code_C:
        操作类型=COPY;
        打破;
    案例KeyEvent.KEY $ C $采用C_V:
        操作类型=粘贴;
        打破;
    案例KeyEvent.KEY code_X:
        操作类型=腰斩;
        打破;
    案例KeyEvent.KEY code_R:
        操作类型=刷新;
        打破;
    案例KeyEvent.KEY code_A:
        操作类型=全选;
        打破;
    }
    Toast.makeText(CTX,操作类型,Toast.LENGTH_SHORT).show();
    返回true;
    }
    返回super.dispatchKeyEvent(事件);
}
 

不幸的是,在仿真器不工作,我不能检查它在真实的硬件。

我有两个问题:
1.它会在设备上工作,像华硕变压器
2.为什么<大骨节病>控制键并不在模拟器上工作?

编辑:我试图找到答案或解决我的问题,但无论谷歌也没有那么帮助

解决方案
  

1。它会在设备上工作,像华硕变压器?

我已经检查了我的华硕变压器TF101 的物理键盘(标准坞站从的华硕的)和您code正常工作。我认为你可以使用它没有问题。

  

2。为什么CTRL键不能在模拟器上工作?

综观可以映射的按钮列表(例如,使用模拟器-keyset )我不认为仿真器的当前版本支持直接控制键映射,所以你'运气再在这里。

I want my app to support keyboard shortcuts. Many devices, such as Asus Transformer have external keyboard which has Ctrl key (available on API Level 11). I've made some code, to check if Ctrl key works in emulator:

@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);
}

Unfortunately it doesn't work in emulator and I can't check it on real hardware.

I have two questions:
1. Would it work on device like Asus Transformer?
2. Why Ctrl key does not work in emulator?

EDIT: I tried to find an answer or solution to my problem, but neither Google nor SO helped.

解决方案

1. Would it work on device like Asus Transformer?

I've checked on my Asus Transformer TF101 with physical keyboard (standard docking station from Asus) and your code works fine. I think you can use it without problems.

2. Why CTRL key does not work in emulator?

Looking at the list of buttons that can be mapped (for example using emulator -keyset) I don't think that current version of emulator supports direct Ctrl key mapping, so you're out of luck here.

这篇关于自定义快捷键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆