手机卫士学习03- 弹出对话框的一些细节

关于使用AlertDialog -弹出对话框使用的一些细节。

1    低版本和高版本对话框。当我们在activity清单文件使用NoTitleBar主题时,高版本会向下兼容,使用低版本的对话框
      如果想去掉TitleBar并且使用高版本对话框,我们可以将系统主题设置<item name="android:windowNoTitle">true</item>
      复制到Application节点的Theme主题--AppTheme里,这样整个应用都会使用NoTitleBar并且使用高版本的对话框。


<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

 <!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
         <item name="android:windowNoTitle">true</item>
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>


2     对话框焦点的抢夺。当AlertDialog.Builder builder =new Builder();        builder.setCancelable(false);对话框抢到焦点
        之后当我们点击其他区域或者点击返回键将没有效果,对话框成功的抢到焦点。这种方式我们可以使用在:当我们的应用程序
        需要强制升级时,可以使用这种方式,当时用户的体验效果不是很好。

        对话框使用的 常用方式。
        当点击其他区域或者返回键,用户默认想法是取消这个对话框,所以需要让应用直接进入主页面。通过:
        builder.setOnCancelListener(new OnCancelListener(){
            public void onCancel(DialogInterface dialog){
            enterHome();//进入主页面
            dialog.dismiss();//取消对话框
}
}); 


 /**
  * 升级提示对话框
  */
 private void showUpdateDialog() {
  AlertDialog.Builder builder = new Builder(this);
  builder.setTitle("升级提示");
  builder.setMessage(description);
  //builder.setCancelable(false);//抢夺焦点,强制更新,不建议使用
  /**
   * 返回键,点击其他区域-进入主页
   */
  builder.setOnCancelListener(new OnCancelListener() {
   @Override
   public void onCancel(DialogInterface dialog) {
    enterHome();
    dialog.dismiss();
   }
  });


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值