当前位置: 移动技术网 > IT编程>移动开发>Android > Android使alertDialog.builder不会点击外面和按返回键消失的方法

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

2019年07月24日  | 移动技术网IT编程  | 我要评论

很好听的英文歌,椰团网,门头沟区邮编

这个问题之前一直困扰我,我的需求就是点击对话框外面和按返回键对话框不会消失,按返回键还好解决,拦截下返回键就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);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网