TabActivity中监听按键响应

原创 2012年03月31日 10:02:15

在普通的Activity中我们可以通过重写onKeyDown(int keyCode, KeyEvent event)方法实现对手机按键进行监听,而当要监听的Activity为TabActivity时(其实ListActivity也一样),这个方法并不起作用。如何解决这个问题呢?

一个activity继承了TabActivity,当我按下返回键时会退出程序,退出程序之前需要给用户一个确认提示。常规方法,像上文说的,重写onKeyDown(int keyCode, KeyEvent event),在方法中写相应的按键处理;但是这个方法在TabActivity中并没有起作用,主要原因是当前activity的焦点放在了tab中的子activity中了,在TabActivity中得不到想要的焦点,所以按键操作并不起作用。

看了下SDK文档,发现有一个dispatchKeyEvent(KeyEvent event),可以通过监听event操作,再判断是哪一个按键来实现对应的按键操作,注意在if判断中要加一个event.getAction() == KeyEvent.ACTION_DOWN判断,因为按键有两个事件ACTION_DOWNACTION_UP,也就是按下和松开,如果不加这个判断,代码会执行两遍,而在下面的代码中就是弹两次AlertDialog。

public boolean dispatchKeyEvent(KeyEvent event) {
	if (event.getAction() == KeyEvent.ACTION_DOWN
			&& event.getKeyCode() == KeyEvent.KEYCODE_BACK) {

		AlertDialog.Builder builder = new AlertDialog.Builder(context);
		builder.setMessage("您确定退出吗?")
				.setTitle("友情提示")
				.setNegativeButton("取消",
						new DialogInterface.OnClickListener() {
							@Override
							public void onClick(DialogInterface arg0,
									int arg1) {
								arg0.cancel();
							}
						})
				.setPositiveButton("确定",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog,int id) {
								Main.this.finish();
							}
						});
		AlertDialog alert = builder.create();
		alert.show();
                return false;
	}
	return super.dispatchKeyEvent(event);
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

TabActivity中监听按键响应

在普通的Activity中我们可以通过重写onKeyDown(int keyCode, KeyEvent event)方法实现对手机按键进行监听,而当要监听的Activity为TabActivity时...

在TabActivity如何添加按键响应

我们知道,在普通的Activity中可以重写onKeyDown(int keyCode, KeyEvent event)方法对手机按键进行监听,而当要监听的Activity为TabActivity时(...

TabActivity 返回键 onBackPressed 监听 dispatchKeyEvent 监听

TabActivity 返回键 onBackPressed 监听  dispatchKeyEvent 监听 早上碰到TabActivity 返回键的监听事件,出现各种问题。瞎忙了一早上,最后...

监听BACK按键

  • 2014年04月20日 11:41
  • 227KB
  • 下载

在TabActivity中如何添加BACK键响应

在实际的开发程序时,要想在一个普通的Activity中添加BACK键的响应事件,只要重写onKeyDown(int keyCode, KeyEvent event)方法,并且在这个方法中进行具体的操作...

Home与返回按键监听Demo

  • 2015年12月30日 11:20
  • 1.7MB
  • 下载

Android键盘AOSP监听delete按键2

  • 2017年01月05日 17:54
  • 27.9MB
  • 下载

Android App监听软键盘按键的收起和展开,非常好用

前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的“GO”按键加载url页面;在点击搜索框的时候,点击右下角的sea...

Android键盘 AOSP监听delete按键

  • 2017年01月05日 13:59
  • 27.88MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TabActivity中监听按键响应
举报原因:
原因补充:

(最多只允许输入30个字)