android中捕获组合键及屏蔽掉其他键的问题处理

先举一个alt+q的例子
当键松开时触发关闭事件
 
    @Override
    public boolean dispatchKeyEvent(KeyEvent event){
          int keyCode = event.getKeyCode();
          if(event.isAltPressed() && keyCode == KeyEvent.KEYCODE_Q && event.getAction() == KeyEvent.ACTION_UP){//alt+q to exit item
              Log.d(TAG, "ALT+Q is pressed, exit test item");
             
              finish();
              return true;
          }
          return false;
    }
 
在android 中有现成的API来判断ALT是否被按下,SHIFT键也有现成的
那如果是一般的键呢,则要多加一个标志位来判断是否被按下了
下面就举一个a+q的
 
    boolean aIsDown = flase;
    @Override
    public boolean dispatchKeyEvent(KeyEvent event){
          int keyCode = event.getKeyCode();
         if(keyCode ==KeyEvent.KEYCODE_A && event.getAction() ==KeyEvent.ACTION_DOWN){
               if(!aIsDown){
                    aIsDown = true;
            }
            return true;
          } else if(keyCode ==KeyEvent.KEYCODE_Q && event.getAction() ==KeyEvent.ACTION_UP){//a+q to exit item
               Log.d(TAG, "A+Q is pressed, exit test item");
               aIsDown = false;
               finish();
               return true;
          }
          return false;
    }


转自:
http://blog.csdn.net/wenlibin1985/article/details/5579359

注:以上代码运行时会屏蔽掉其他按键(除了home键),将红色代码修改为:super.dispatchKeyEvent(event),屏蔽其他按键的问题即可解决!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值