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

本文章在网上有很多,但是在监听组合键时都存在一些严重的bug,以上是本人经过修改后的代码

更多相关文章

  1. Android(安卓)检测SD卡应用
  2. android DatePicker和TimePicke用法
  3. Android(安卓)来电状态监听
  4. android notification点击与移除监听
  5. [Android] 监听wifi状态
  6. 日拱一卒(二十一)
  7. android 模拟器 得到GPS
  8. Android实在在app内部控制按键震动
  9. cocos2d-x之JS中的Android按键监听

随机推荐

  1. 用Android(安卓)Studio进行NDK编程入门实
  2. 【Android】- 搭建服务器进行前后端的交
  3. Android(安卓)Okhttp工具类的封装(okhttpU
  4. Android(安卓)Studio 1.01 + BlueStacks
  5. Android(安卓)嵌入式 linux 去掉启动时闪
  6. android yuv摄像
  7. Service and Broadcast
  8. GIS的学习(二十四)android异步调用geoserve
  9. Android(安卓)ConstraintLayout详解
  10. android应用集成google登录