返回顶部
首页 > 资讯 > 移动开发 >Android使alertDialog.builder不会点击外面和按返回键消失的方法
  • 229
分享到

Android使alertDialog.builder不会点击外面和按返回键消失的方法

方法alertdialogAndroid 2022-06-06 04:06:02 229人浏览 安东尼
摘要

这个问题之前一直困扰我,我的需求就是点击对话框外面和按返回键对话框不会消失,按返回键还好解决,拦截下返回键就OK了。 但是点击外面不好解决。之前有人说模态对话框,我看了一会,觉

这个问题之前一直困扰我,我的需求就是点击对话框外面和按返回键对话框不会消失,按返回键还好解决,拦截下返回键就OK了。

但是点击外面不好解决。之前有人说模态对话框,我看了一会,觉得不是我想要的效果。popWindow的话,必须提供父view.

重新看下api,发现设置setCancelable属性就行了。

如:


public void showNoProject(){
    Builder builder = new AlertDialog.Builder(MainActivity.this)
    .setMessage("您还没有项目,请先添加项目")
    .setPositiveButton("去添加项目", new OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
      }
    })
    .setNegativeButton("关闭", new OnClickListener() {
      @Override
      public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
      }
    });
    builder.setCancelable(false);
    builder.show();
  }

还有另外两种实现方法

一、在oncreate()方法中设置Dialog点击屏幕不可取消,实例代码如下:


  @Override  
  public void onCreate(Bundle icicle)
  {
   super.onCreate(icicle);
   this.setCancelable(false);// 设置点击屏幕Dialog不消失
    int style = DialogFragment.STYLE_NORMAL, theme = 0;
    setStyle(style,theme);
  }

二、将Activity设置成窗口的样式实现Dialog或者Popupwindow效果在开发中是很常用的一种方式,在AndroidMenifest.xml中将需要设置的Activity增加android:theme="@android:style/Theme.Dialog"属性即可。但是窗口化的Activity有个问题就是:点击窗口空白处Activity会finish。如何避免这个问题呢,办法如下:

1、resvaluesstyles.xml


<resources>
  <style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">
    <item name="android:windowCloseOnTouchOutside">false</item>
  </style>
</resources>

YourActivity.this.setFinishOnTouchOutside(false);
您可能感兴趣的文章:Android对话框AlertDialog.Builder使用方法详解Android中用Builder模式自定义Dialog的方法Android设计模式之Builder模式详解Android编程设计模式之Builder模式实例详解Android Notification.Builder通知案例分享Android设计模式之Builder模式解析Android Binder入门学习笔记


--结束END--

本文标题: Android使alertDialog.builder不会点击外面和按返回键消失的方法

本文链接: https://lsjlt.com/news/22649.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作