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

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

Sample Code:

  1. //Android监听组合键
  2.  
  3. package com.fuwei.action;
  4. import android.app.Activity;
  5. import android.os.Bundle;
  6. import android.view.KeyEvent;
  7. import android.view.View;
  8. import android.view.View.OnClickListener;
  9. import android.widget.TextView;
  10. import android.widget.Toast;
  11. public class Main extends Activity {
  12. /** Called when the activity is first created. */
  13. @Override
  14. public void onCreate(Bundle savedInstanceState) {
  15. super.onCreate(savedInstanceState);
  16. setContentView(R.layout.main);
  17. onClickView();
  18. }
  19. @Override
  20. protected void onRestart() {
  21. // TODO Auto-generated method stub
  22. Toast.makeText(this, "Home", 1);
  23. super.onRestart();
  24. }
  25. public void onClickView() {
  26. TextView textView = (TextView) findViewById(R.id.linear);
  27. textView.setOnClickListener(new OnClickListener() {
  28. @Override
  29. public void onClick(View v) {
  30. v.setBackgroundColor(0xFF00FF00);
  31. }
  32. });
  33. }
  34.  
  35. // @Override
  36. // public boolean onKeyDown(int keyCode, KeyEvent event) {
  37. // // TODO Auto-generated method stub
  38. // if(!event.isAltPressed()&&keyCode == KeyEvent.KEYCODE_A){
  39. // Toast.makeText(Main.this, "ALT + A", 0).show();
  40. // }
  41. // return super.onKeyDown(keyCode, event);
  42. // }
  43. // @Override
  44. // public boolean dispatchKeyEvent(KeyEvent event) {
  45. // // TODO Auto-generated method stub
  46. // //Alt Shift System 等键可以用is....判断是否为按下状态
  47. // if(event.isAltPressed()&&event.getKeyCode() == KeyEvent.KEYCODE_A){
  48. // Toast.makeText(Main.this, "ALT + A", 0).show();
  49. // }
  50. // return super.dispatchKeyEvent(event);
  51. // }
  52.  
  53. boolean aIsDown = false;
  54. boolean qIsDown = false;
  55. @Override
  56. public boolean dispatchKeyEvent(KeyEvent event) {
  57. // TODO Auto-generated method stub
  58. // 判断普通按键
  59. int keyCode = event.getKeyCode();
  60. if (keyCode == KeyEvent.KEYCODE_A
  61. && event.getAction() == KeyEvent.ACTION_DOWN) {
  62. aIsDown = true;
  63. } else if (keyCode == KeyEvent.KEYCODE_Q
  64. && event.getAction() == KeyEvent.ACTION_DOWN) {
  65. qIsDown = true;
  66. }else if((keyCode == KeyEvent.KEYCODE_Q && !aIsDown)||(keyCode == KeyEvent.KEYCODE_A && !qIsDown)){
  67. aIsDown = false;
  68. qIsDown = false;
  69. }else if (aIsDown
  70. && qIsDown
  71. && (keyCode == KeyEvent.KEYCODE_Q || keyCode == KeyEvent.KEYCODE_A)
  72. && event.getAction() == KeyEvent.ACTION_UP) {
  73. Toast.makeText(Main.this, "Q + A", 0).show();
  74. aIsDown = false;
  75. qIsDown = false;
  76. }else{
  77. aIsDown = false;
  78. qIsDown = false;
  79. }
  80. return super.dispatchKeyEvent(event);
  81. }
  82. }

Android 捕获组合键的更多相关文章

  1. C++添加热键和捕获组合键

    一.热键注册 步骤一:声明一个全局量int hotkeyId=1: 步骤二:窗体创建的时候注册: int result= RegisterHotKey(this->GetHWND(), hotk ...

  2. C# 如何捕获键盘按钮和组合键以及KeyPress/KeyDown事件之间的区别 (附KeyChar/KeyCode值)

    1. 首先将窗口属性KeyPreview设为true,如果属性对话框中找不到,就直接在代码里添加: 2. 添加KeyPress / KeyDown事件: 1.KeyPress 和KeyDown .Ke ...

  3. [转]Delphi : keydown与keypress的区别,组合键

    Shift 是一个集合变量. type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDoubl ...

  4. Delphi : keydown与keypress的区别,组合键

    Shift 是一个集合变量. type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDoubl ...

  5. js简单的设置快捷键,hotkeys捕获键盘键和组合键的输入

    设置快捷键 这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb). hotkeys on Githubhotkeys预览 创建 您将需要在您的系 ...

  6. android中返回键捕获处理

    在android平台上捕获Back键事件,主要用来处理返回的相关逻辑,下列几种方法都可以捕获,如下所示: 1.获取按钮按下事件,兼容android 1.0到android 2.1,重写onKeyDow ...

  7. Hotkeys.js 2.0.2 发布,捕获键盘输入和输入的组合键快捷键,它没有依赖

    这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb),gzip:1.9k. 更新内容: 添加测试用例: 添加更多特殊键支持: 修复bug. __ ...

  8. Hotkeys.js 2.0.2 发布,JS 网页快捷键设置,捕获键盘输入和输入的组合键快捷键,它没有依赖

    这是一个强健的 Javascript 库用于捕获键盘输入和输入的组合键,它没有依赖,压缩只有只有(~3kb),gzip:1.9k. 更新内容: 添加测试用例: 添加更多特殊键支持: 修复bug. __ ...

  9. Windows Server 2008取消登录前的Ctrl+Alt+Delete组合键操作

    前言: 在Windows Server 2008服务器中,为了防止人们登录服务器时错误的将账户和密码输入其他地方导致信息泄漏,所以在我们登录Windows Server 2008服务器操作系统时会要求 ...

随机推荐

  1. golang应用打包成docker镜像

    golang编译的应用是不需要依赖其他运行环境的,那么为什么还需要打包成docker镜像呢?当需要附带配置和日志等文件时可以更方便的移植和运行,下面介绍从dockerfile编译成镜像. 在项目根目录 ...

  2. Netty源码分析第3章(客户端接入流程)---->第3节: NioSocketChannel的创建

    Netty源码分析第三章: 客户端接入流程 第三节: NioSocketChannel的创建 回到上一小节的read()方法: public void read() { //必须是NioEventLo ...

  3. Flink 部署文档

    Flink 部署文档 1 先决条件 2 下载 Flink 二进制文件 3 配置 Flink 3.1 flink-conf.yaml 3.2 slaves 4 将配置好的 Flink 分发到其他节点 5 ...

  4. ceilometer 源码分析(polling)(O版)

    一.简单介绍ceilometer 这里长话短说, ceilometer是用来采集openstack下面各种资源的在某一时刻的资源值,比如云硬盘的大小等.下面是官网现在的架构图 这里除了ceilomet ...

  5. sprint2(第三天)

    展板 燃尽图

  6. Thunder——Final发布

    视频: https://www.bilibili.com/video/av17008792/   视频播放截图及简要文字介绍: http://www.cnblogs.com/lick468/p/799 ...

  7. 软件工程-东北师大站-第十次作业(PSP)

    1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 4.本周PSP饼状图

  8. Parallel学习

    Parallel给cpu的核有关系,在Parallel中,写入需要并行执行的方法,比如:方法1需要3秒:方法2需要6秒:方法3需要9秒: 并行情况下,加上任务分配,上下文切换需要1秒,执行方法总耗时只 ...

  9. 如何解决abd.exe已停止工作

     打开电脑,右键点击属性会出现如下界面: 点击左边高级系统设置:将会出现如下界面: 点击环境变量,点编辑. 把环境变量中的 ANDROID_ADB_SERVER_PORT 改成1122以后还遇到这个问 ...

  10. Centos7 虚拟机复制后网卡问题 Job for network.service failed

    在运行“/etc/init.d/network restart”命令时,出现错误“Job for network.service failed. See 'systemctl status netwo ...