Android监听组合键
16lz
2021-12-04
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. */@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); onClickView();}@Overrideprotected 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;@Overridepublic 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,以上是本人经过修改后的代码
转自:http://blog.csdn.net/anzhu_111/article/details/6981552
更多相关文章
- Android(安卓)Studio 自带的侧滑布局设置
- Android(安卓)界面的横竖屏监听
- Android(安卓)onClick事件三种实现方法
- android 监听联系人数据库
- Android(安卓)UI控件详解-RadioGroup和RadioButton(单选框)
- Android中Preference的使用以及监听事件分析
- Android读取assets目录下所有文件
- android怎样在布局文件监听事假
- android 单选,复选按钮,以及toast