ActivityGroup中按返回键弹出询问是否退出对话框
程序员文章站
2022-07-05 08:14:33
...
今天在写android程序时遇到一个问题,一个ActivityGroup包含N个Activity,当点击返回键时询问是否退出程序,开始程序是这样写的:
public class MainActivity extends ActivityGroup { //其他代码…… @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("提示"); builder.setMessage("确定要退出?"); builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { finish(); } }); builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }); builder.create().show(); return true; }else{ return super.onKeyUp(keyCode, event); } } }
结果一按返回键,程序就退出了。
后来经过查找资料,应该修改为捕获onKeyDown事件
然后需要在子activity中添加如下代码
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode == KeyEvent.KEYCODE_BACK){ return getParent().onKeyDown(keyCode, event); }else{ return super.onKeyDown(keyCode, event); } }
有什么不对的地方,还望高手指教
上一篇: 人生规划啊
下一篇: Oracle已提交的操作“回滚”