android中捕获组合键
http://blog.csdn.net/wenlibin1985/article/details/5579359

Android组合键
http://www.eoeandroid.com/thread-162824-1-1.html

Sample Code:

//Android监听组合键

package com.fuwei.action;
import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
onClickView();
}
@Override
protected void onRestart() {
// TODO Auto-generated method stub
Toast.makeText(this, "Home", 1);
super.onRestart();
}
public void onClickView() {
TextView textView = (TextView) findViewById(R.id.linear);
textView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
v.setBackgroundColor(0xFF00FF00);
}
});
} // @Override
// public boolean onKeyDown(int keyCode, KeyEvent event) {
// // TODO Auto-generated method stub
// if(!event.isAltPressed()&&keyCode == KeyEvent.KEYCODE_A){
// Toast.makeText(Main.this, "ALT + A", 0).show();
// }
// return super.onKeyDown(keyCode, event);
// }
// @Override
// public boolean dispatchKeyEvent(KeyEvent event) {
// // TODO Auto-generated method stub
// //Alt Shift System 等键可以用is....判断是否为按下状态
// if(event.isAltPressed()&&event.getKeyCode() == KeyEvent.KEYCODE_A){
// Toast.makeText(Main.this, "ALT + A", 0).show();
// }
// return super.dispatchKeyEvent(event);
// } boolean aIsDown = false;
boolean qIsDown = false;
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// TODO Auto-generated method stub
// 判断普通按键
int keyCode = event.getKeyCode();
if (keyCode == KeyEvent.KEYCODE_A
&& event.getAction() == KeyEvent.ACTION_DOWN) {
aIsDown = true;
} else if (keyCode == KeyEvent.KEYCODE_Q
&& event.getAction() == KeyEvent.ACTION_DOWN) {
qIsDown = true;
}else if((keyCode == KeyEvent.KEYCODE_Q && !aIsDown)||(keyCode == KeyEvent.KEYCODE_A && !qIsDown)){
aIsDown = false;
qIsDown = false;
}else if (aIsDown
&& qIsDown
&& (keyCode == KeyEvent.KEYCODE_Q || keyCode == KeyEvent.KEYCODE_A)
&& event.getAction() == KeyEvent.ACTION_UP) {
Toast.makeText(Main.this, "Q + A", 0).show();
aIsDown = false;
qIsDown = false;
}else{
aIsDown = false;
qIsDown = false;
}
return super.dispatchKeyEvent(event);
}
}

最新文章

  1. [转]Part1: Understanding !PTE , Part 1: Let’s get physical
  2. phpstorm使用手册
  3. 分享关于Entity Framework 进行CRUD操作实验的结果
  4. jvm运行数据分布
  5. Meet python: little notes 4 - high-level characteristics
  6. ip地址的组成(网络位+主机位)
  7. 运行Python2.x程序报编码错误的解决办法-UnicodeDecodeError: 'ascii' codec can't decode byte 0xb7 in position 7: ordina not in range(128)
  8. 关于Core Data的一些整理(四)
  9. Android android:clickable 问题
  10. .NET缓存框架CacheManager---1、CacheManager的介绍
  11. ECOS高可用集群
  12. 20180903 - Python Pip 工具下载whl包与离线安装
  13. vue 打开新窗口
  14. JAVA服务cpu占用高排查
  15. js窗体间传值
  16. 2016vijos 1-2 股神小L(堆)
  17. Code::Blocks环境下导入WS2_32.lib文件
  18. ubuntu 用remastersys 备份系统并且安装
  19. bzoj1485: [HNOI2009]有趣的数列(Catalan数)
  20. solr联合多个字段进行检索(multivalued和copyfield的使用)

热门文章

  1. Django_用户权限管理rbac
  2. #1490 : Tree Restoration-(微软2017在线笔试)
  3. eclipse在线安装maven插件
  4. wordpress登录密码框明文显示最后一个输入的字符
  5. Bing词典vs有道词典比对测试报告——功能篇之核心功能
  6. No.1011_第八次团队会议
  7. [buaa-SE-2017]个人作业-Week1
  8. install4j 工具为java程序打包exe
  9. ubuntu16.04+opencv3.0.0
  10. 文件名命工具类(将指定目录下的文件的type类型的文件,进行重命名,命名后的文件将去掉type)