项目要增加tabmain Back退出提示,其他tabactivity按Back到tabmain 且不退出程序。
由于项目使用的是TabActivity. onKeyDown被子Activity使用,TabActivity onKeyDown无效.改用dispatchKeyEvent.可以使用.但dispatchKeyEvent会先触发onKeyDown再触发onKeyUp
2个事件执行效果是相同的.
所以得让程序只触发onKeyDown
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
//监听Back按键且状态不是弹起
if(event.getKeyCode() == KeyEvent.KEYCODE_BACK && event.getAction() != KeyEvent.ACTION_UP){
if(tabHost.getCurrentTabTag()==TAB_HOME)
{
new AlertDialog.Builder(this)
.setTitle("系统提示")
.setMessage("是否退出?")
.setNegativeButton("取消", null)
.setPositiveButton("退出",
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialoginterface, int i){
System.exit(0);
}
}).show();
}else{
group.check(R.id.tab_home);//因为tab按钮是Radio,所以直接触发check来切换tab页
}
}
return true;//不返回super.dispatchKeyEvent(event),你懂的....
}