- 浏览: 154084 次
- 性别:
- 来自: 五指山
文章分类
最新评论
-
dengdonglin888:
qq_30221445 写道你好 请问这种数据能解吗 < ...
Simple XML -
qq_30221445:
你好 请问这种数据能解吗 <request> ...
Simple XML -
画个逗号给明天qu:
画个逗号给明天qu 写道
Android上传文件到服务器 -
画个逗号给明天qu:
...
Android上传文件到服务器 -
alranger:
我在jsp页面加上这一段代码后,问题还是存在。
解决Ext在ie9报错:不支持extjs对象的“createContextualFragment属性或方法”
转自:http://blog.csdn.net/mvpsendoh/article/details/6649279
最近在做个小项目,其中有涉及到dialog的按钮的事件处理,情形是这样的:
在按钮的监听器中,我希望做一个if else 判断,如果条件符合,就关闭对话框,如果条件不符合,就不关闭对话框,并做其他处理。
首先,默认情况下,按下dialog按钮就会将对话框关闭。如果我们需要维持对话框,就不能让它关闭了。比如我们要使用对话框弹出一个目录,希望点击对话框的按钮时返回上层目录。这时如果咔嚓一声,它就把我们的对话框给关了,这就不好了。如何使它不关闭呢?
请看下面代码:
- builder.setPositiveButton("返回", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- try {
- field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
- field.setAccessible(true);
- field.set(dialog,false);
- dialog.dismiss();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- //做其他处理
- });
- builder.show();
按照上面的try{}语句中那样设置,就不会在按下按钮时关闭对话框了。那如果我们想要先做个条件判断后,再决定是否要关闭对话框呢?
大家第一时间应该会想:这还不简单吗?加个if else不就得了!如下:
- builder.setPositiveButton("返回", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- if(!condition){
- try {
- field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
- field.setAccessible(true);
- field.set(dialog,false);
- dialog.dismiss();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else {
- dialog.dismiss();
- }
- }
- });
不过遗憾的是,这样写虽然简单,但是却不起作用。这样设置了以后,是存在的不稳定因素的。
为什么呢?因为按下dialog会不会被关闭,我们可以把它当做dialog的一个属性。我们在之前为了使按下按钮不关闭dialog,我们改变了它默认的属性,正是通过下面的代码:
field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog,false);
此时dialog的属性已经改变了。如果第一次条件判断成功,dialog属性被修改了。而第二次条件判断不成功,执行else语句,此时dialog的属性已经在第一次条件判断中被设置为按下按钮不关闭。那么此时无论你调用多少次dialog的dismiss方法,他也不会把对话框关掉了。
那么怎么办呢?简单,把他的属性改回来就行了:
- builder.setPositiveButton("返回", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- if(!condition){
- try {
- field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
- field.setAccessible(true);
- field.set(dialog,false);
- dialog.dismiss();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- else {
- try {
- field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
- field.setAccessible(true);
- field.set(dialog,true);
- dialog.dismiss();
- } catch (SecurityException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (NoSuchFieldException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalArgumentException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IllegalAccessException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- });
这样,在else中将dialog的属性改回来,这样就OK啦!
发表评论
-
xUtils简介
2014-11-25 10:04 873xUtils 包含了很多实用的android工具。 xU ... -
直接拿来用!最火的Android开源项目
2014-07-25 11:01 718转 http://www.admin10000.com/d ... -
Android APK反编译详解(附图)
2014-03-28 10:56 847http://blog.csdn.net/ithomer/ar ... -
小米人
2014-02-17 17:23 708http://www.xiaomiren.net/ -
android开发之gallery 兑现滚动一张且短距离滑动实现滚动
2013-07-02 15:28 688http://www.myexception.cn/andro ... -
TextView显示插入的图片
2013-07-01 11:29 734http://orgcent.com/android-text ... -
TextView使用SpannableString设置复合文本
2013-07-01 11:29 676http://orgcent.com/android-text ... -
转:::Android TextView文字横向自动滚动(跑马灯)
2013-06-17 11:45 1531TextView实现文字滚动需要以下几个要点: 1.文字长度长 ... -
相片滤镜开源
2013-04-27 15:01 759https://github.com/daizhenjun/I ... -
android图片特效处理之模糊效果
2013-04-27 14:57 855http://blog.csdn.net/sjf0115/ar ... -
android图片处理方法(不断收集中)
2013-04-27 14:57 584http://gundumw100.iteye.com/blo ... -
Android, WindowsPhone7, IOS ,vc2010平台40多套图片滤镜开源
2013-04-27 14:56 691http://www.cnblogs.com/daizhj/a ... -
移动云存储平台
2013-04-25 16:13 922http://bmob.cn 关于Bmob 对于很多 ... -
android ExpandableListView简单应用及listview模拟ExpandableListView
2013-02-28 11:45 709http://blog.csdn.net/jj120522/a ... -
android_App集成支付宝
2013-02-28 11:43 811http://www.cnblogs.com/qianxude ... -
Android Pull Refresh View 插件
2012-12-01 12:43 876Android Pull Refresh View htt ... -
Android-TelephoneManager(转载)
2012-10-09 22:08 1380好文章齐分享。原文地址:http://blog.si ... -
android 开源 listview separato
2012-08-27 22:51 684http://code.google.com/p/androi ... -
fragment开源项目 学习
2012-08-13 12:02 955https://github.com/tisa007/Andr ... -
Fragment学习
2012-08-13 11:53 696http://www.eoeandroid.com/threa ...
相关推荐
"VB.close.dialog.run.program.name.hide"这个主题恰好关注的就是这样一个技术点:如何在关闭对话框时隐藏运行程序的名称。 首先,让我们了解VB中的对话框。对话框是应用程序与用户交互的一种方式,它们通常用于...
因此,在选择动画效果时,应考虑到设备的性能和内存限制,确保对话框的流畅性。 总的来说,“dialog弹出样式”是Android应用中提升用户体验的重要一环。通过NiftyDialogEffects,开发者可以轻松实现多种对话框动画...
dialog.show(); ``` 3. **使用DialogFragment** 如果选择使用`DialogFragment`,我们需要创建一个继承自`DialogFragment`的新类,并重写`onCreateDialog`方法。在这个方法中,我们将加载布局并构建Dialog: ```...
在实际应用中,你可能还需要处理一些边界情况,例如防止Dialog在滑动动画过程中被用户误触关闭。此外,还可以通过调整动画时长、滑动阈值等参数来优化用户体验。 总的来说,通过自定义AlertDialog的布局和添加滑动...
例如,thinkbox通常在`$.ready`中初始化,限制了弹出时机的多样性,而Dialog的API允许动态创建和控制对话框,可以根据业务逻辑条件灵活决定是否显示。 7. **实战示例** 以下是一个基本的Dialog实例,展示了如何在...
1. **显示与隐藏**:测试`Dialog`是否能在正确的时间和条件下显示,并在适当的时候自动或手动关闭。 2. **交互性**:确保用户能够通过点击按钮或执行其他操作与`Dialog`进行交互,且这些交互能触发预期的响应。 3....
10. **条件筛选**:对于条件筛选功能,可以在Dialog中添加可选的条件选项,用户选择后,将结果传递回主界面进行处理。 11. **消息提示**:简单消息提示通常只包含一条信息和一个确认按钮。自定义Dialog可以提供更...
在实际开发过程中,不断测试对话系统的功能,确保其在不同场景下正常工作。利用Unity的Profiler工具检查性能,优化代码以减少内存占用和CPU负载。 通过"dialogDemo"项目,你将学习到如何结合Unity的UI系统和C#编程...
Dialog在GUI应用中是一个临时的窗口,用于与用户进行更复杂的交互,如输入信息、选择选项等。在Eclipse插件中,我们可以使用`org.eclipse.jface.dialogs.Dialog`类作为基础,创建自定义的对话框。Dialog通常包含标题...
Dialog是Android UI设计中常见的一种组件,通常用于显示临时性的信息或者需要用户进行简单交互的情况。而引导页则常用于初次使用应用时,向用户介绍应用的主要功能或特色,帮助他们快速上手。 Dialog展示引导页的...
在IT行业中,对话框(Dialog)是用户界面中不可或缺的一部分,它用于向用户显示临时信息、请求输入或者执行特定操作。"Dialog弹出窗口全齐代码"是一个专注于创建具有腾讯风格的弹出层效果的代码资源,兼容主流浏览器...
在IT行业中,对话框(Dialog)是用户界面设计中的一个重要元素,它用于向用户显示临时信息,接收用户输入,或进行一系列操作确认。本合集包含多种样式的对话框,如仿苹果样式、全屏样式以及界面底部组选样式,这些都...
7. **自动打开和关闭**:可以设置Dialog在页面加载后自动打开,或者在特定条件下自动关闭: ```javascript $("#dialog").dialog({ autoOpen: true, closeOnEscape: true, // 按Esc键关闭 open: function() { ...
- **线程安全**:如果在多线程环境下操作Dialog,要确保代码的线程安全性,防止竞态条件。 - **适配不同设备**:考虑到不同设备的屏幕尺寸和分辨率,Dialog的设计应具备良好的响应性和适配性。 总的来说,"多Dialog...
- **Dialog.FileBrowse()**:打开文件浏览对话框,允许用户选择打开或保存文件,可自定义标题、默认文件夹、过滤条件、多选与否等参数。 - **Dialog.FolderBrowse()**:显示文件夹浏览对话框,让用户选择一个文件夹...
用户可能在打印过程中有选择性地开启清除对话和自动关机功能。例如,如果用户设置了自动关机,那么在打印作业完成后,电脑会按照预设的时间自动关闭;同时,如果选择了清除对话,那么在打印对话框出现并开始打印后,...
在多人选择的情境下,dialog提供了一个集中且不干扰主页面其他元素的环境,让用户专注进行选择。 这个插件可能包含以下关键特性: 1. **多选机制**:通过复选框或者选择框让用户可以同时选择多个选项。 2. **搜索...
例如,对话框组件(dialog)的默认属性定义在了jQuery.fn.dialog.defaults中。这些属性允许开发者定制组件的外观和功能,比如改变对话框的大小、位置或者行为等。 除了属性,EasyUI组件还拥有方法和事件。组件的...
- 考虑兼容性:虽然层级过渡在Android 5.0后才被广泛支持,但可以通过支持库或条件判断来适配更低版本的系统。 总的来说,Android层级过渡是提升应用交互体验的重要工具。通过深入理解和熟练运用,开发者可以创造出...
- 点击“查询”按钮,`searchdialog.java`会打开搜索界面,用户输入查询条件,搜索结果在主界面的表格中显示。 - 若选择“删除”,系统会确认用户是否要删除选中的图书,然后调用`dbcon.java`的`delete()`方法执行...