`
407827531
  • 浏览: 1077303 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Android Alert Dialog解决点击按钮对话框不关闭的问题

 
阅读更多

 

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

当我们在用到Android alertDialog创建对话框 的时候,我们会遇到一个问题就是:我们添加的按钮不论是用setNegativeButton还是用setPositiveButton添加的按钮,点击的时候,都会关闭对话框,但是我们的一 些实际需求,就需要保留这个对话框不动,例如输入校验码,密码之类的校验问题,如果用户输入错误,而关闭后弹出对话框,就很别扭了。在网上找了一下,原来在源码中有一个boolean变量是控件对话框的关闭与否的mShowing变量,我们只需要利用反射改变这个变量就可以控制我们的对话框是不是关闭了。所以,我们可以通过手动设置mShowing的值来达到目的。代码如下:

如果点击保持对话框:

 

  1. private void keepDialog(DialogInterface dialog) {  
  2.         try {  
  3.             Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");  
  4.             field.setAccessible(true);  
  5.             field.set(dialog, false);  
  6.         } catch (Exception e) {  
  7.             e.printStackTrace();  
  8.         }  
  9.     }  


相信上面有一定java基础的都能看懂是写的什么,反射这里不多解释,很简单。

 

mShowing是Dialog类的一个成员变量,在上面的方法中改变之后会影响别的按钮,如现在点击“取消”按钮将不能关闭对话框,解决办法在“取消”的onClick事件中再改变mShowing的值,如下:

如果点击关闭对话框:

 

  1. private void distoryDialog(DialogInterface dialog){  
  2.         try {  
  3.             Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");  
  4.             field.setAccessible(true);  
  5.             field.set(dialog, true);  
  6.         } catch (Exception e) {  
  7.             e.printStackTrace();  
  8.         }   
  9.     }  

 

 

分享到:
评论

相关推荐

    Eclipse SweetAlertDialog

    【Eclipse SweetAlertDialog】是一个基于Android平台的对话框库,专为那些希望在应用程序中添加具有吸引力和用户友好性的对话框的开发者设计。SweetAlertDialog在Eclipse开发环境中使用,为传统Android开发提供了一...

    SweetAlertDialog清新版

    4. **交互反馈**:SweetAlertDialog可以设置点击按钮后的回调函数,方便开发者处理用户的操作,实现业务逻辑。 5. **与Material Design风格兼容**:虽然SweetAlertDialog拥有自己独特的设计风格,但它也能够很好地...

    Android漂亮的对话框项目sweet-alert-dialog eclipse版本

    在Android应用开发中,对话框(Dialog)是用户界面中不可或缺的一部分,用于向用户展示临时信息或进行简单交互。Sweet Alert Dialog是一款流行的开源库,它为Android提供了美观、可定制化的对话框,使得开发者能够...

    在Android的webview中定制js的alert,confirm和prompt对话框的方法

    在 Android 中,使用 WebView 来加载网页时,会遇到 JavaScript 的 Alert、Confirm 和 Prompt 对话框的问题。这些对话框是浏览器默认的行为,但是在移动设备中,需要根据实际情况进行定制。以下将介绍如何在 Android...

    SweetAlertDialog的Eclipse库工程

    SweetAlertDialog是一款在Android开发中广泛使用的对话框库,它提供了比原生Android对话框更为丰富的样式和功能。这款库特别适合那些希望为应用程序增添一些视觉吸引力的开发者,它可以创建出带有自定义标题、内容、...

    SweetAlertDialog

    SweetAlertDialog是一款在Android平台上广泛使用的对话框库,它为开发者提供了丰富的自定义功能,使得创建美观、具有吸引力的对话框变得更加便捷。相较于传统的AlertDialog,SweetAlertDialog不仅提供了更多的样式...

    android dialog进度对话框

    在本案例中,我们讨论的是"android dialog进度对话框",这通常用于表示一个后台任务正在进行,如数据加载、文件下载等,给用户以明确的反馈。 创建自定义的进度对话框,首先需要继承自`AlertDialog.Builder`或直接...

    Android自定义dialog对话框

    在Android开发中,自定义对话框(Dialog)是一种常见的用户交互方式,它可以提供更为丰富的界面样式和功能,增强用户体验。本教程将详细讲解如何创建一个仿新浪微博风格的自定义Dialog,该Dialog设计简洁且美观,...

    sweet-alert-dialog

    "Sweet Alert Dialog" 是一个专为 Android 设计的高级对话框库,它为开发者提供了丰富的动画效果和多种对话框样式,极大地增强了应用的用户界面体验。这个库是基于 Android Studio 开发的,使得集成和自定义变得更加...

    Android Dialog全屏显示、动画显示

    例如,当用户点击相机按钮时,我们启动相机Intent: ```java Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST_CODE); ``` 在`...

    安卓Android源码——(Dialog对话框).zip

    在安卓开发中,Dialog对话框是一种非常常见的UI组件,它用于在用户进行主要操作时提供额外的信息或选项。本资源“安卓Android源码...对于有经验的开发者,它也可以作为一个参考,帮助解决在Dialog使用中遇到的问题。

    android各种漂亮对话框

    SweetAlertDialog dialog = new SweetAlertDialog(context, SweetAlertDialog.NORMAL_TYPE) .setTitleText("标题") .setContentText("对话框的内容") .setConfirmText("确定") .setCancelText("取消") ....

    sweet-alert-dialog的eclipse版本

    SweetAlertDialog dialog = new SweetAlertDialog(context) .setTitleText("提示") .setContentText("这是一个甜美的对话框!") .setCancelText("取消") .setConfirmText("确定") .show(); ``` 在这个例子中,...

    KAlertDialog,android的alert dialog,一个漂亮的材料警告对话框,可以在你的android应用程序中使用。.zip

    `KAlertDialog`弥补了这一点,它允许开发者通过简单的API调用来创建具有丰富样式和交互的对话框,包括但不限于自定义背景、按钮颜色、字体样式等,从而提升应用的用户体验。 `KAlertDialog`的核心特性包括: 1. **...

    Android软件开发之盘点所有Dialog对话框大合集

    在Android软件开发中,Dialog对话框是用户界面中不可或缺的一部分,它用于向用户展示临时信息、请求确认或者提供一些操作选项。本篇文章将全面盘点Android系统中的各种Dialog对话框,帮助开发者更好地理解和运用这些...

    安卓Dialog对话框相关-Android版的SweetAlert清新文艺快意灵动的甜心弹框.zip

    为了解决这个问题,开发者社区提供了许多第三方库,其中就包括"SweetAlert",这是一个Android版的清新、文艺、快意灵动的对话框库,它为Android应用带来了类似iOS中Sweet Alert的效果。 "SweetAlert"库提供了丰富的...

    Android dialog 综合展示

    在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息、确认操作或展示选项。本篇文章将深入探讨Android Dialog的综合应用,包括各种类型的对话框及其用法。 首先,Android中...

    Android+dialog+大合集

    在Android开发中,Dialog是一种非常重要的组件,它用于在用户界面中显示临时的、轻量级的窗口,通常用于向用户展示警告、确认信息或提供交互选项。"Android Dialog 大合集"可能包含了各种类型的Dialog实现,以及相关...

    Android中dialog常用样式

    本资源集合了Android中常用的Dialog样式,通过分析和学习,可以帮助开发者更高效地创建符合设计要求的对话框。 首先,让我们了解Dialog的基本结构和使用方式。Dialog是基于Activity的,通常由`AlertDialog.Builder`...

Global site tag (gtag.js) - Google Analytics