现在的位置: 首页 > 综合 > 正文

Android ActivityGroup 中监听返回事件

2013年05月07日 ⁄ 综合 ⁄ 共 712字 ⁄ 字号 评论关闭

   在activitygroup中直接监听onkeydown事件是不行的,可以尝试用

@Override
	public boolean dispatchKeyEvent(KeyEvent event) {
		// TODO Auto-generated method stub

		if(event.getKeyCode()==KeyEvent.KEYCODE_BACK)
		{
			Builder builder=new AlertDialog.Builder(this);
			builder.setTitle("提示").setMessage("确定要退出吗?")
			.setPositiveButton("确定", new DialogInterface.OnClickListener() {

				@Override
				public void onClick(DialogInterface arg0, int arg1) {
					// TODO Auto-generated method stub
					MainTabActivity.this.finish();

				}
			})
			.setNegativeButton("取消",null).create().show();
			//return false;
		}
		//else
			return super.dispatchKeyEvent(event);
	}

但如上代码会触发两次对话框的弹出,这是因为当松开按键,此时会再次触发该事件,但不同的是该evetnt中的action为up上次为down所以根据这个判断只要修改为

event.getKeyCode()==KeyEvent.KEYCODE_BACK&&
event.getAction()==KeyEvent.ACTION_DOWN

就可以了

抱歉!评论已关闭.