按惯例,写在前面的:可能在学习Android的过程中,大家会和我一样,学习过大量的基础知识,很多的知识点也都能说出了123来,但是这些孤立的点终究显得太零散了,因此,我想从今天开始,以最经典的手机安全卫士项目为例,自己锻炼一下,也是想和大家交流交流,希望大家都能给出见解,共同进步。
八、界面细节
处理一些界面上的小细节。
1.如果在对话框出现后,用户点击后退,就会停留在splash界面。我们需要处理成点击后退,就进入主界面。
这就需要我们在取消对话框的时候,给一个监听器,正好也有这样的一个api,OnCancleListener。代码放在对话框show()之前。
具体代码: /* * 当取消对话框的时候,直接进入主界面 */ builder.setOnCancelListener(new OnCancelListener(){ @Override public void onCancel(DialogInterface dialog) { loadMainUI(); } });
2.用户在下载完成新版本后,会出现一个是否安装新应用的对话框,如果这时候用户又不想安装了,点击取消,又会出现卡在splash界面上的情况。
这时候我们就需要得到下载成功后开始安装的返回值,可以用startActivityForResult(intent,0)
(快捷键:Alt+/
快速获取api)
将apkInstall(File t)方法中的startActivity(intent)改为startActivityForResult(intent,0),然后写onActivityResult方法。
具体代码:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { loadMainUI(); super.onActivityResult(requestCode, resultCode, data); }
3.更新提醒的对话框,黑底色显得很难看,我们想把它变得美观些。怎么处理呢?
之所以会显示这样的样式,是因为我们在当前activity主题样式是旧版本的:android:theme="@android:style/Theme.Black.NoTitleBar"
这时候我们只需把这一行代码删除掉,就可以使得对话框变得美观。但是这时候,标题栏又出现了,我们可以使用代码,将标题栏去掉。
然后在onCreate下增加代码:
requestWindowFeature(Window.FEATURE_NO_TITLE);
这样就可以了。
注意:这一句必须放到setContentView前面,否则会出错。