如何不点击“确定”,“取消”关闭sweet alert dialogDialog.Builder窗口

(转自:http://blog.csdn.net/winson_jason/article/details/8485524)当我们在用到Android alertDialog创建对话框 的时候,我们会遇到一个问题就是:我们添加的按钮不论是用setNegativeButton还是用setPositiveButton添加的按钮,点击的时候,都会关闭对话框,但是我们的一 些实际需求,就需要保留这个对话框不动,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就很别扭了。&&&&&&& 在网上找了一下,原来在源码中有一个boolean变量是控件对话框的关闭与否的mShowing变量,我们只需要利用反射改变这个变量就可以控制我们的对话框是不是关闭了。所以,我们可以通过手动设置mShowing的值来达到目的。 1
Field field = 4
dialog.getClass().getSuperclass().getDeclaredField("mShowing"); 5
field.setAccessible(true); 7
field.set(dialog, false);//true表示要关闭,false不关闭 9
} catch (Exception e) {11
e.printStackTrace();13
具体代码: 1
new AlertDialog.Builder(Bookstore.getInstance()) 5
.setTitle(r.getString(&提示&) 7
.setMessage(&不能打开&) 9
.setPositiveButton(&确定&), new DialogInterface.OnClickListener() {11
public void onClick(DialogInterface dialog, int which) {13
try {//下面三句控制弹框的关闭15
Field field =17
dialog.getClass().getSuperclass().getDeclaredField("mShowing");18
field.setAccessible(true);20
field.set(dialog,true);//true表示要关闭22
} catch (Exception e) {24
e.printStackTrace();26
}).show();&本人参考后补充:若在定义Field提示出错时可改为:java.lang.reflect.Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");一旦设置了不关闭DIALOG,点取消也不会关闭,所以需在取消事件下设置为可关闭:& 1 ... 2
3 new AlertDialog.Builder(this) 4 .setTitle(titleId) 5 .setView(layout) 6 .setPositiveButton(android.R.string.ok, 7 new DialogInterface.OnClickListener() { 8 public void onClick(DialogInterface dialog, 9 int which) {10 11 //点确定按钮12 13 }14 }).setNegativeButton(android.R.string.cancel, 15 new DialogInterface.OnClickListener() {16 17 //点取消按钮18 public void onClick(DialogInterface dialog,19 int which) {
20 try {//下面三句控制弹框的关闭21 java.lang.reflect.Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");22 field.setAccessible(true);23 field.set(dialog,true);//true表示要关闭24 25 } catch (Exception e) {26 e.printStackTrace();27 }
28 }29 30 })31 //null)32 .create().show();33 }&
android点击AlertDialog的button不退出对话框的方法 - Young的...Android弹出对话框时,默认情况下无论点击哪个button,触发事件后对话框都会自动...(true); //设置mShowing值,欺骗android系统 field.set(dialog, false); }...Android Alert Dialog解决点击按钮对话框不关闭的问题_Li..._希赛变量就可以控制我们的对话框是不是关闭了所以我们可以通过手动设置mShowing的值...本文标题:Android Alert Dialog解决点击按钮对话框不关闭的问题本文链接:http:/...点击Dialog中的按钮不关闭窗口的实现方法 - - ITeye技术站 在Android实际开发中,我们可能常常需要弹出一个...有填零件名称或单价时会给出提示而该AlertDialog不...的按钮,如现在点击“取消”按钮将不能关闭对话框,...Android中Alertdialog对话框点击消失? - Andye - 博客园Android中Alertdialog对话框点击消失?在开发的时候遇到一个问题,就是一触摸对话... 研究其父类时候发现,可以设置这么一条属性,在AlertDialog.Builder.create()之后...怎么不点击“确定”,“取消”关闭AlertDialog.Builder..._CSDN论坛13条回复&-&发帖时间:&日Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能... AlertDialog alertDialog = builder.create(); alertDialog.setCancelable(false);//设置这个对话框不能被用户按[返回键]而取消掉,但测试发现如果用户按了KeyEvent...Android设置AlertDialog点击按钮对话框不关闭(转)(2)_Java123社区 Android设置AlertDialog点击按钮对话框不关闭(转)(2) 时间: 14:33
浏览:人 java.lang.reflect.Field field = dialog.getClass().getSuper...求解:点击Notification弹出AlertDialog.builder对话框-Android...15条回复&-&发帖时间:&日Android 自定义AlertDialog对话框 | 应用开发笔记Android UI学习 - 对话框 (AlertDialog & ProgressDialog)你通常应该从protected Dialog Activity.onCreateDialog (int id) 回调方法里创建对话框。当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的...Android--Dialog详细讲解 - 程序园Android-AlertDialog研究 | Liudroid的博客另外你还可以继承android.app.Dialog实现自已的dialog。 二、AlertDialog是一种能构造默认的一、二、三个按钮的对话框和单选或多选的的选择对话框。 三、Progress...【如何为AlertDialog添加新Button-Android开发问答】-突袭 为了解决用户可能碰到关于&如何为AlertDialog添加新Button-Android开发问答&相关的... 问:在设置listview的OnItemLongClick()的时候弹出对话框,然后为对话框中的...AlertDialog 3个button如何点击任意一个button不关闭弹出框-...4条回复&-&发帖时间:&日求解:同一界面点击不同按钮出现不同对话框 - Android开发问答 - ...Android开发 - 第14页 - 站分类 - 博客园 功能分类:工具 支持平台:Android 运行环境:Eclipse开发语言:Java 开发工具:... Android设置AlertDialog点击按钮对话框不关闭(转) (转自:......技术阻止通过按钮关闭对话框(AlertDialog)_百度知道4个回答 - 提问时间: 日当单击“确定“按钮时完成某些工作,如果这些工作失败,对话框不能关闭。而当成功...
android AlertDialog怎么设置字体大小?
AlertDialog...10.3.2 对话框控件-Dialog(2) - 51CTOandroid alertdialog的按钮点击后不消失 - perjer123的专栏 - ...androidexceptiondialogjava使用反射: 在你的setPositiveButton中添加: //用于不关闭对话框 Java code try { Field field = dialog.getClass().getSuperclass()...android 对话窗口AlertDialog dialog.dismiss()的疑问_百度知道在弹出的对话窗口的某个按钮事件里,处理完事件代码后,要用dialog.dismiss()这个...
android AlertDialog怎么设置字体大小?
AlertDialog...android 中怎么实现点击了对话框的按钮以后对话框不会..._百度知道android 中怎么实现点击了对话框的按钮以后对话框不会消失在android中当你点击了对话框的按钮以后 不管你是否调用了dismis()函数系统本省都会去调用这个函数并且关闭...Android使用自定义AlertDialog(退出提示框) - 技术改变生活 - ...Android系统原理与源码分析(1):利用Java反射技术阻止通过..._博客园实际上,关闭对话框的动作已经在Android SDK写死了,并且未给使用者留有任何接口...AlertDialog类实际上只是一个 架子。象设置按钮、设置标题等工作都是由Alert...Android 关于Dialog的关闭设置_Linux编程_Linux公社-Linux系统...Android 关于Dialog的关闭设置 1.点击对话框上按钮时对话框的关闭设置 // 不关闭的写法 try { Field field = mDialog.getClaandroid常见的alertdialog与实际有关问题解决方案_IT知识..._希赛android常见的alertdialog与实际问题解决方案 Android Alert Dialog解决点击按钮对话框不关闭的问题 Android alertDialog中左中右三个按钮,点击按钮的时候,即使没调用...Android开发之AlertDialog跟自定义AlertDialog_IT知识问答_希赛Android 利用Java反射技术阻止通过按钮关闭对话框(三)8条回复&-&发帖时间:&日请问如何让dialog不消失-Android开发问答-eoe 移动开发者论坛 - ...16条回复&-&发帖时间:&日Android的AlertDialog详解(7种方式) - be happy - 博客频道 - ... setTitle :为对话框设置标题 setIcon :为对话框设置图标 setMessage:为对话框... import android.app.AlertDialog; import android.app.D import ...android 对话框AlertDialog。 - Hi, Sun - ITeye技术站 java.lang.Object
? android.app.AlertDialog.Builder
使用AlertDialog.Builder创建对话框需要了解以下几个方法: setTitle :为对话框设置...Android Dialog用法 - 狼迹天涯 - 博客园 Android API 支持下列类型的对话框对象: 警告对话框 AlertDialog: 一个可以有0...设定好以后, 使用create()方法来获得AlertDialog对象. 下面的主题展示了如何为......对话框,alert.setButton那几行老是报错;android代码..._百度知道1个回答 - 提问时间: 日alert.setButton(DialogInterface.BUTTON_NEGATIVE, &取消&, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialo...Android:实现点击AlertDialog上按钮时不关闭对话框-And..._第七城市如果内容为空则不关闭对话框,并toast提示。 使用AlertDialog.Builder创建对话框时,可以使用builder.setNegativeButton和builder.setPositiveButton两个方法设置取消按钮...在android中当你点击了对话框的按钮以后,不管你是否调用了dismiss()函数,系统本身都会去调用这个函数并且关闭对话框,但是在有些程序中我们必须让对话框保持不消失,如何实现这样的功能呢?这就需要一种欺骗的机制,也就是说当我们点击了按钮以后,让系统以为对话框已经关闭了,这样就不会再关闭对话框了。
具体实现代码如下:
private void setMShowing(DialogInterface dialog, boolean mShowing) {
Field field = dialog.getClass().getSuperclass()
.getDeclaredField(&mShowing&);
field.setAccessible(true);
field.set(dialog, mShowing);
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
}将上面的代码加到哪个按钮的单击事件中,哪个按钮就再也无法关闭对话框了。如果要关闭对话框,只需再将 mShowing 设为 true 即可。要注意的是,在一个按钮里设置了 mShowing 变量,也会影响另一个按钮的关闭对话框功能,因此,需要在每一个按钮的单击事件里都设置 mShowing 变量的值。
mShowing是Dialog类中的一个私有变量,用来标识对话框是否显示。如果要改变该变量的值,必须通过反射。
将该变量的值设为false,即使调用了dialog.dismiss(),也不会关闭对话框:public void dismiss() {
if (Looper.myLooper() == mHandler.getLooper()) {
dismissDialog();
mHandler.post(mDismissAction);
void dismissDialog() {
if (mDecor == null || !mShowing) {//如果为false,直接返回
if (mWindow.isDestroyed()) {
Log.e(TAG, &Tried to dismissDialog() but the Dialog's window was already destroyed!&);
mWindowManager.removeView(mDecor);
} finally {
if (mActionMode != null) {
mActionMode.finish();
mWindow.closeAllPanels();
mShowing =
sendDismissMessage();
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:50487次
积分:2303
积分:2303
排名:第6709名
原创:172篇
转载:94篇
(2)(32)(3)(22)(29)(9)(8)(4)(16)(4)(24)(13)(4)(15)(34)(1)(1)(13)(6)(5)(4)(2)(8)(4)(5)点击取消关闭窗口,如何让他不关闭,并且窗口内容(如筛选后的dataset)不变呢?
[问题点数:20分,结帖人clleady]
点击取消关闭窗口,如何让他不关闭,并且窗口内容(如筛选后的dataset)不变呢?
[问题点数:20分,结帖人clleady]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。文章- 111&
&&&&&&&&&&&
有时候我们需要在游戏或应用中用一些符合我们样式的提示框(AlertDialog)
以下是我在开发一个小游戏中总结出来的.希望对大家有用.
先上效果图:
下面是用到的背景图或按钮的图片
经过查找资料和参考了一下例子后才知道,要实现这种效果很简单.就是在设置alertDialog的contentView.
以下的代码是写在Activity下的,代码如下:
public boolean onKeyDown(int keyCode, KeyEvent event) {&// 如果是返回键,直接返回到桌面&if(keyCode == KeyEvent.KEYCODE_BACK || keyCode == KeyEvent.KEYCODE_HOME){&&&&&&&&&& showExitGameAlert();&}&&return super.onKeyDown(keyCode, event);}private void showExitGameAlert() {&final AlertDialog dlg = new AlertDialog.Builder(this).create();&dlg.show();&Window window = dlg.getWindow();&&&&&&& // *** 主要就是在这里实现这种效果的.&&&&&&& // 设置窗口的内容页面,shrew_exit_dialog.xml文件中定义view内容&window.setContentView(R.layout.shrew_exit_dialog);&&&&&&& // 为确认按钮添加事件,执行退出应用操作&ImageButton ok = (ImageButton) window.findViewById(R.id.btn_ok);&ok.setOnClickListener(new View.OnClickListener() {&&public void onClick(View v) {&&&exitApp(); // 退出应用...&&}&});&&&&&&&& // 关闭alert对话框架&&&&&&& ImageButton cancel = (ImageButton) window.findViewById(R.id.btn_cancel);&&&&&&& cancel.setOnClickListener(new View.OnClickListener() {&& public void onClick(View v) {&&& dlg.cancel();&&}&& });}以下的是layout文件,定义了对话框中的背景与按钮.点击事件在Activity中添加.
文件名为 : shrew_exit_dialog.xml
&?xml version="1.0" encoding="utf-8"?&&RelativeLayout &xmlns:Android=""&android:layout_height="wrap_content" &android:layout_width="wrap_content"&&&&!-- 退出游戏的背景图 --&&&ImageView android:id="@+id/exitGameBackground"&&android:layout_centerInParent="true" &&android:layout_height="wrap_content"&&android:layout_width="wrap_content" &&android:src="@drawable/bg_exit_game" /&&&&!-- 确认按钮 --&&&ImageButton android:layout_alignBottom="@+id/exitGameBackground"&&android:layout_alignLeft="@+id/exitGameBackground"&&android:layout_marginBottom="30dp" &&android:layout_marginLeft="35dp"&&android:id="@+id/btn_ok" &&android:layout_height="wrap_content"&&android:layout_width="wrap_content" &&android:background="@drawable/btn_ok" /&&&&!-- 取消按钮 --&&&ImageButton android:layout_alignBottom="@+id/exitGameBackground"&&android:layout_alignRight="@+id/exitGameBackground"&&android:layout_marginBottom="30dp" &&android:layout_marginRight="35dp"&&android:id="@+id/btn_cancel" &&android:layout_height="wrap_content"&&android:layout_width="wrap_content" &&android:background="@drawable/btn_cancel" /&&/RelativeLayout&就这样经过了以上几步,就可以实现自定义AlertDialog的效果了. 用同样的思路可以实现其它更复杂的效果.
阅读(...) 评论()查看: 521|回复: 5
AlertDialog.Builder自带单选框如何设置 不让选中
主题帖子e币
AlertDialog.Builder 的setSingleChoiceItems(data,
& && && && && && && && &0,
& && && && && && && && &new DialogInterface.OnClickListener() {
& && && && && && && && && & @Override
& && && && && && && && && & public void onClick(DialogInterface dialog,
& && && && && && && && && && && && &int which) {
& && && && && && && && && && &&&transferId =
& && && && && && && && && & }
& && && && && && && && &}
& && && && && & )方法&&创建的单选框 ,如何设置 让所有的单选框 选不中&&点击了无效果?
主题帖子e币
设置不可点击?
主题帖子e币
用自定义dialog吧
主题帖子e币
那你还用singlechoice干嘛呢
用builder.setItems不可以吗
主题帖子e币
几个意思呢?如果想了解,APIDemo里面就有
主题帖子e币
就是标示可以选择,但是不让他选择,已经实现,自定义的
QQ已认证,此人靠谱
社区认证会员
社区认证会员
推荐阅读热门话题
6246424622088201318141801147513051196963793764719698715
3&小时前3&小时前3&小时前4&小时前4&小时前4&小时前4&小时前4&小时前4&小时前4&小时前4&小时前4&小时前5&小时前5&小时前
特别关注 /3
从基础入门到熟练精通,9个阶段知识体系图指引你逐步提升~还有技术问答+讲师互动,最新实战教程每日更新!
400多门最新IT职业技能教程,Android/Java/iOS/HTML5,eoe用户注册成为极客学院会员即可获得15天VIP,快来抢吧!
eoe联合听云年终征文送豪礼,魅蓝手机,机械键盘,Android书籍,极客学院月VIP学习权限(注册即送)……众多大奖拿到手软,抓紧来参与吧
Powered by
扫一扫 关注eoe官方微信}

我要回帖

更多关于 alertdialog 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信