`
不夜的星辰
  • 浏览: 88543 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android dialog 点击不消失

阅读更多

/**
     * Android中的弹出框在被点击时, 无论点击哪个按钮都会关闭窗口。
     * 但是有的情况下我们不需要立即关闭窗口。下面的情况是弹出框中要求用户输入文件名,
     *  并在点击确定时检查文件名的合法性, 不合法则提示用户重新输入, 弹出框要保持在界面上
     *  使用反射
     */
    DialogInterface.OnClickListener dialogListener = new DialogInterface.OnClickListener() {
  
  @Override
  public void onClick(DialogInterface dialog, int which) {
   switch (which) {
   case DialogInterface.BUTTON_POSITIVE:
    try {
        //不关闭
     Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
        field.setAccessible(true);
        field.set(dialog, false);
        } catch (Exception e) {
         e.printStackTrace();
         }
    if(inputCheck()){
     //关闭对话框
     try {
      Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
      field.setAccessible(true);
      field.set(dialog, true);
      } catch (Exception e) {
      e.printStackTrace();
      }
     dialog.dismiss();
    }
    break;
   case DialogInterface.BUTTON_NEGATIVE:
    dialog.dismiss();
    break;

   default:
    break;
   }
  }
 };

分享到:
评论
5 楼 不夜的星辰 2012-10-24  
caik123 写道
不夜的星辰 写道
caik123 写道
有个bug,不知道你发现没有。当你首先输入一个不合法的用户名,会提示,用户名不合法之类的信息,然后你点击取消按钮或者手机上的返回按钮,对话框竟然不能消失,这个bug不知道你发现没有?

你说的那个情况,我试了下,点返回按钮是不能消失,但是点取消时可以的

so,那你点击返回按钮不能后退的这个问题解决没呢?我们公司的测试人员非得说这是bug,一定让我改。

这个我就没去理会了,我觉得这不一定就是bug,很多东西是可以换一个方式去理解的,而且你可以去说服测试人员,否则的话这种非错误上的所谓bug总是得按照测试人员的要求去完成那开发人员岂不是处处被动!如果真要解决这个现象的话,你可以试试这个方法:捕获back键再重新设置dialog的 field.setAccessible(true);field.set(dialog, true);
4 楼 caik123 2012-10-23  
不夜的星辰 写道
caik123 写道
有个bug,不知道你发现没有。当你首先输入一个不合法的用户名,会提示,用户名不合法之类的信息,然后你点击取消按钮或者手机上的返回按钮,对话框竟然不能消失,这个bug不知道你发现没有?

你说的那个情况,我试了下,点返回按钮是不能消失,但是点取消时可以的

so,那你点击返回按钮不能后退的这个问题解决没呢?我们公司的测试人员非得说这是bug,一定让我改。
3 楼 不夜的星辰 2012-10-18  
caik123 写道
有个bug,不知道你发现没有。当你首先输入一个不合法的用户名,会提示,用户名不合法之类的信息,然后你点击取消按钮或者手机上的返回按钮,对话框竟然不能消失,这个bug不知道你发现没有?

你说的那个情况,我试了下,点返回按钮是不能消失,但是点取消时可以的
2 楼 caik123 2012-10-18  
有个bug,不知道你发现没有。当你首先输入一个不合法的用户名,会提示,用户名不合法之类的信息,然后你点击取消按钮或者手机上的返回按钮,对话框竟然不能消失,这个bug不知道你发现没有?
1 楼 huqiji 2012-09-06  
高手,膜拜

相关推荐

    android中dialog点击按钮不消失详解

    在调用dialog的时候得到dialog对象,加入资料中代码,可以控制dialog的按钮在什么时候消失,而不是系统默认的点击消失

    Android自定义显示内容的Dialog

    例如,当Dialog或PopupWindow显示和消失时,可以添加平滑的过渡动画,使得交互更加自然。 总结来说,Android自定义显示内容的Dialog可以通过继承Dialog或PopupWindow实现。Dialog提供了基本的对话框功能,而...

    安卓Dialog对话框相关-androiddialog总结Dialog整理.rar

    本资源“安卓Dialog对话框相关-androiddialog总结Dialog整理.rar”提供了关于Android Dialog的总结和示例,虽然不能确保所有代码都能直接运行,但它可以作为学习和参考的宝贵资料。 首先,我们来看Dialog的基本用法...

    Android 中自定义Dialog样式的Activity点击空白处隐藏软键盘功能(dialog不消失)

    然而,一个常见的需求是在用户完成编辑后,点击Dialog之外的空白区域能够隐藏软键盘,但不关闭Dialog本身。以下是如何实现这一功能的详细步骤: 一、需求分析: 在某些应用中,比如用户填写表单或搜索框,我们希望...

    Android开发中Dialog半透明背景消失

    在Android开发中,Dialog的半透明背景消失是一个常见的问题,尤其是在涉及屏幕锁定和唤醒的场景下。通过理解Dialog的窗口属性和使用适当的标志,如FLAG_SHOW_WHEN_LOCKED,我们可以有效地解决这个问题,确保Dialog在...

    Android-随意变化的气泡布局Dialog根据点击View的位置定位它的位置Dialog可定制方向等

    随意变化的气泡布局,Dialog根据点击View的位置定位它的位置,Dialog可定制方向等!(Bubble layout changes freely,Dialog click on the location of View positioning its location,Dialog can be customized ...

    androidDialog对话框.zip

    本资源“androidDialog对话框.zip”包含了关于Android中Dialog使用的实例代码,方便开发者参考和使用。接下来,我们将深入探讨Android Dialog的相关知识点。 1. **Dialog的基本类型** Android提供了三种基本的...

    android 自定义Dialog提示+动画效果

    4. 实现交互逻辑:在自定义Dialog类中,你需要处理用户的点击事件,例如,当用户点击确定或取消按钮时,执行相应的回调函数。 5. 显示Dialog:最后,在需要显示Dialog的地方,通过创建自定义Dialog类的实例并调用其...

    Android自定义dialog,可动画显示

    在Android开发中,自定义Dialog是一种常见的需求,它允许开发者根据应用的UI风格和功能需求创建独特的对话框。本文将详细讲解如何在Android中实现一个可动画显示的自定义Dialog,以及如何处理基本的需求设置。 首先...

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

    Dialog并不直接关联Activity的生命周期,但当底层Activity销毁时,Dialog也会消失。因此,我们需要在Activity的onPause()、onResume()等方法中适当地管理Dialog的显示和隐藏,以防止用户体验上的问题。 总的来说,...

    android tab dialog

    在Android开发中,"android tab dialog" 是一种常见的用户界面元素,它结合了Tab布局和Dialog的功能,用于提供一种模态的多选项卡交互方式。Tab通常用来组织和展示不同的内容区域,而Dialog则用于在主应用界面之上...

    android自定义dialog和Toast

    Dialog通常用于向用户展示重要信息或需要用户做出决策的情况,而Toast则用于轻量级的通知,不打断用户的当前操作。以下是对如何自定义这两者的详细讲解。 ### 自定义Dialog 1. **创建布局文件**:首先,我们需要在...

    Android Dialog去黑边加动画

    然而,系统默认的Dialog样式有时可能不符合设计师的审美或者应用的需求,因此我们经常需要对其进行自定义,比如去除黑边并设置为圆角边框,以及添加弹出动画。下面将详细讲解如何实现这个需求。 首先,去除Dialog的...

    android等待对话框(可定时自动关闭)

    在Android应用开发中,对话框(Dialog)是一种常见的用户交互元素,用于向用户显示临时信息或请求用户输入。本文将详细讲解如何实现一个具有“请稍候...”文本且能定时自动关闭的等待对话框,以及提供两种不同的定时...

    Android高仿IOS的Dialog效果

    2. 动画效果:添加进入和退出动画,模拟iOS Dialog的弹出和消失效果。 3. 按钮样式:调整按钮的颜色、字体大小和样式,使其更接近iOS风格。 通过以上步骤,你可以在Android应用中创建一个高度仿iOS风格的Dialog效果...

    Android代码-Dialog

    标准Dialog不能满足所有需求时,可以创建自定义Dialog。这通常涉及创建一个新的布局文件,然后通过`LayoutInflater`加载并设置到Dialog的视图上。例如: ```java View dialogView = LayoutInflater.from(context)...

    Android实现Windows风格的Dialog

    7. **动画效果**:为了增加用户体验,可以添加进入和退出动画,使Dialog的出现和消失更加自然。这可以通过设置Dialog的动画属性或者自定义动画类实现。 8. **对话框尺寸**:调整Dialog的宽度和高度,使其适应内容并...

    android dialog 大合集 对话框 透明

    在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息、确认操作或展示选项。本大合集主要涵盖了Android中各种类型的对话框及其使用方法,旨在帮助开发者掌握对话框的全面应用...

    Android 开发之Dialog中隐藏键盘的正确使用方法

    Dialog 中隐藏键盘是 Android 开发中常见的一种需求,例如在弹出一个 Dialog 中,里面有一个 EditText,用来输入内容,因为输入时,需要弹出键盘,所以当 Dialog 消失时,键盘要一起隐藏。 在 Dialog 中隐藏键盘的...

Global site tag (gtag.js) - Google Analytics