android重写finish实现是否退出提示功能
16lz
2021-01-24
众所周知用户按back键退出程序的时候是调用finish()来销毁活动的,那么我们是否可以重写finish()这个函数来过滤finish()的调用
首先,新建一个android工程,然后ctrl+o(android studio)搜索finish()
然后回车自动生成重写finish()函数代码
这里我们要用到AlertDialog对话框,首先我们在我们要重写的函数体里面new 一个AlertDialog
AlertDialog.Builder dialog=new AlertDialog.Builder(MainActivity.this);//new AlertDialog对象
然后我们设置对话框标题,内容,是否back键销毁对话框 dialog.setTitle("温馨提示");//对话框标题 dialog.setMessage("是否退出本程序?");//对话框内容 dialog.setCancelable(false);//是否back键销毁
接下来我们来创建AlertDialog的PositiveButton和NegativeButton的按钮Text和Event dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { }
到这里我们就把整个AlertDialog给完成了,接下来我们应该做的就是给按钮事件添加我们的代码 如果用户点了“确定”那么我们就应该写退出代码这里我们用java自带的,当然也可以可以写安卓的
第一种Java自带
System.exit(0);
第二种安卓的killProcess
android.os.Process.killProcess(android.os.Process.myPid());
完后了“确定”然后取消的话我们不用添加任何事件代码即可 接下来就是调用AlertDialog的show()函数
dialog.show();
好,整个功能算是完成 实现代码:
@Override public void finish() { AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this); dialog.setTitle("温馨提示"); dialog.setMessage("是否退出本程序?"); dialog.setCancelable(false); dialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { System.exit(0); } }); dialog.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "谢谢支持", Toast.LENGTH_LONG).show(); } }); dialog.show(); }
功能实现图:
更多相关文章
- C语言函数的递归(上)
- 探究 Android(安卓)View 绘制流程,Activity 的 View 如何展示到屏
- 【Android】 NDK开发基础
- [转]Android(安卓)3D 编程:HelloArrow(用 OpenGL ES 2.0 实现)
- android 图形系统加速学习系列 (一)
- Android(安卓)Lua 相互调用
- android ApiDemos里的Transition3d翻转修复完善
- Android使用代码进行界面布局和改变图标、标题、名称、主界面
- Android(安卓)在一个程序中启动另一个程序(包名,或者类名)