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();
}
});alertdialog使用方法
builder.setCancelable(false);
builder.show();
}
还有另外两种实现⽅法
⼀、在oncreate()⽅法中设置Dialog点击屏幕不可取消,实例代码如下:
@Override
public void onCreate(Bundle icicle)
{
this.setCancelable(false);// 设置点击屏幕Dialog不消失
int style = DialogFragment.STYLE_NORMAL, theme = 0;
setStyle(style,theme);
}
⼆、将Activity设置成窗⼝的样式实现Dialog或者Popupwindow效果在开发中是很常⽤的⼀种⽅式,在l中将需要设置的Activity增加android:theme="@android:style/Theme.Dialog"属性即可。但是窗⼝化的Activity有个问题就是:点击窗⼝空⽩处Activity会finish。如何避免这个问题呢,办法如下:
1、l
<resources>
<style name="Theme.SoundRecorder" parent="@android:style/Theme.Holo.DialogWhenLarge">
<item name="android:windowCloseOnTouchOutside">false</item>
</style>
</resources>
YourActivity.this.setFinishOnTouchOutside(false);
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。