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

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. 【RL系列】MDP与DP问题

    推荐阅读顺序: Reinforcement Learning: An Introduction (Drfit)  有限马尔可夫决策过程 动态编程笔记 Dynamic programming in Py ...

  2. Vue.js 相关知识(组件)

    1. 组件介绍 组件(component),vue.js最强大的功能之一 作用:封装可重用的代码,通常一个组件就是一个功能体,便于在多个地方都能调用该功能体 根组件:我们实例化的Vue对象就是一个组件 ...

  3. CocoaPods did not set the base configuration of your project because your project already has a custom config set.

    今天在封装自己的消息推送SDK的时候,pod install 的时候,突然报这个错误,解决方式如下: $ pod install Analyzing dependencies Downloading ...

  4. 请教JDBC中的thin和OCI的区别\

    请教JDBC中的thin和OCI的区别 https://zhidao.baidu.com/question/2267123737573204748.html

  5. bash登录过程 其实还不太了解,先码后看

    在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile. ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序 ...

  6. 结对项目:SudokuGame

    1. Github项目地址:https://github.com/ZiJiaW/SudokuGame GUI在BIN目录下的SudokuGUI.rar中,解压后打开SudokuGame.exe即可.2 ...

  7. web窗体之四则运算

    1,计算方法: namespace ASP.NET { public class JiSuan { public int S; public int Result { get { return S; ...

  8. 听说 —— beta冲刺总结

    听说 -- beta冲刺总结 beta冲刺成员名单 姓名 学号 负责方向 个人主页 周龙荣 031402543 前端页面.跳转 http://www.cnblogs.com/ZHOULR/ 李家鹏 0 ...

  9. week3c:个人博客作业

    程序测试: 一个基本的测试. 在Visual Studio 2013 中使用C++单元测试 操作如下: 这是我学到的过程. 有复杂程序的测试.以后有时间再弄.

  10. Flexpod的开关机顺序

    Flexpod = Cisco UCS + Cisco Nexus + Netapp (中文名叫做“融合基础架构”) 之前没有接触过这套系统,不太明白怎么个开关机的顺序,借公司停电的机会实际演练了一番 ...