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

 更新时间:2017年01月06日 15:48:39   作者:呼啸而过  
本篇文章主要介绍了Android使alertDialog.builder不会点击外面和按返回键消失的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

这个问题之前一直困扰我,我的需求就是点击对话框外面和按返回键对话框不会消失,按返回键还好解决,拦截下返回键就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实现三角形气泡效果方式汇总

    Android实现三角形气泡效果方式汇总

    这篇文章主要介绍了Android实现三角形气泡效果方式汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Android开发实现长按返回键弹出关机框功能

    Android开发实现长按返回键弹出关机框功能

    这篇文章主要介绍了Android开发实现长按返回键弹出关机框功能,涉及Android针对长按事件的响应与处理相关操作技巧,需要的朋友可以参考下
    2017-09-09
  • Android面试Intent采用了什么设计模式解析

    Android面试Intent采用了什么设计模式解析

    这篇文章主要为大家介绍了Android面试Intent采用了什么设计模式解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Android Retrofit2网路编程实现方法详解

    Android Retrofit2网路编程实现方法详解

    这篇文章主要介绍了Android Retrofit2网路编程实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Android自定义组件获取本地图片和相机拍照图片

    Android自定义组件获取本地图片和相机拍照图片

    这篇文章主要为大家详细介绍了Android自定义组件获取本地图片和相机拍照图片的相关资料,非常炫酷的效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • Android 调试工具用法详细介绍

    Android 调试工具用法详细介绍

    本文主要介绍Android 调试工具,在Android应用开发的过程中肯定会用到Android 调试工具,这里整理了调试工具的使用方法,有需要的小伙伴可以参考下
    2016-08-08
  • Android build文件的删除的方法

    Android build文件的删除的方法

    本篇文章主要介绍了Android build文件的删除的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Android okhttp使用的方法

    Android okhttp使用的方法

    本篇文章主要介绍了Android okhttp使用的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Android内部存储改变读取权限的方法

    Android内部存储改变读取权限的方法

    今天小编就为大家分享一篇Android内部存储改变读取权限的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Android编程之ActionBar Tabs用法实例分析

    Android编程之ActionBar Tabs用法实例分析

    这篇文章主要介绍了Android编程之ActionBar Tabs用法,结合实例形式分析了ActionBar Tabs的功能及Tab切换不同的Fragment的相关实现技巧,需要的朋友可以参考下
    2017-03-03

最新评论