Android中 动态改变对话框值的方法

 更新时间:2013年04月25日 11:31:56   作者:  
Android Dev-Guide 推荐重写Activity.onCreateDialog()方法来创建Dialog,这样Dialog就归属于这个Activity了。

使用方法是这样的,Activity.showDialog()激发Activity.onCreateDialog()创建Dialog,然后显示之,便于多个Dialog的统一管理。

注意,以后再用Activity.showDialog()显示同一个Dialog时,则不会调用Activity.onCreateDialog(),

而是调用Activity.onPrepareDialog(),使用上一次显示Dialog时的状态。即

     第一次:showDialog() -> onCreatedialog()
       以后: showDialog() -> onPrepareDialog()

在用oncreatedialog回调创建dialogd时候,系统会缓存dialog,下次直接就显示上次显示的内容。

  当一个Dialog第一次被调用的时候,Android系统会调用你应该实例化Dialog的Activity的onCreateDialog方法,

这个方法会启动你从showDialog(int)方法里面传递的那个ID参数所定义的Dialog,当你创建成功后,在方法的最后回返回这个Dialog。

     在Dialog显示之前,Android也会调用回调函数onPripareDialog(int,Dialog),当你想在这个Dialog每次打开的时候一些属性得到改变,你可以定义这个方法,

这个方法会在每次Dialog打开的时候被调用,onCreateDialog()只会在Dialog第一次打开的时候被调用,如果你没有定义onPrepareDialog(),

每次返回的Dialog都是和第一次显示的Dialog一样,这个方法需要传递一个ID和在onCreateDialog()方法中创建的Dialog。

      最好的定义onCreateDialog()和onPrepareDialog()中使用switch对传入的id进行下判断,每一个case对应着要启动的Dialog的ID

复制代码 代码如下:

* 动态改变对话框值
  * 关键点:onPrepareDialog方法 里面调用 removeDialog(id);
  * 对话框调用执行顺序 showDialog() -> onCreateDialog() -> onPrepareDialog() -> removeDialog()

  @Override
     public void onPrepareDialog(int id, Dialog dialog) {
         switch (id) {
         case (DIALOG_SORT_MAILS):
             removeDialog(id);  //移出掉onCreateDialog()创建的Dialog
             break;
         }
     }

相关文章

  • Android实现语音合成与识别功能

    Android实现语音合成与识别功能

    这篇文章主要为大家详细介绍了Android实现语音合成与识别功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • 万能RecyclerView分割线

    万能RecyclerView分割线

    这篇文章主要介绍了万能RecyclerView分割线的相关代码,告诉大家如何准确调用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • DownloadManager实现文件下载功能

    DownloadManager实现文件下载功能

    这篇文章主要为大家详细介绍了DownloadManager实现文件下载功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Android利用ViewDragHelper轻松实现拼图游戏的示例

    Android利用ViewDragHelper轻松实现拼图游戏的示例

    本篇文章主要介绍了Android利用ViewDragHelper轻松实现拼图游戏的示例,非常具有实用价值,需要的朋友可以参考下
    2017-11-11
  • Android实现GPS定位代码实例

    Android实现GPS定位代码实例

    这篇文章主要介绍了Android实现GPS定位实例,对关键操作部份给出代码示例并做了一定的注释,需要的朋友可以参考下
    2014-07-07
  • 注解处理器(APT)是什么

    注解处理器(APT)是什么

    APT是JDK提供的工具,用于在编译阶段未生成class之前对源码中的注解进行扫描和处理,获取到注解后可以使用原始方法与JavaPoet生成Java代码,这篇文章主要介绍了注解处理器(APT)是什么?需要的朋友可以参考
    2023-02-02
  • Android 用 camera2 API 自定义相机

    Android 用 camera2 API 自定义相机

    本文主要介绍了Android 用 camera2 API 自定义相机的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • Android登录注册功能 数据库SQLite验证

    Android登录注册功能 数据库SQLite验证

    这篇文章主要为大家详细介绍了Android登录注册功能,数据库SQLite验证,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • 详解Android的登录那点事

    详解Android的登录那点事

    本篇为大家介绍的内容包括:1、用户连续多次输错密码,增加验证码验证;2、Android如何通过http请求达到与服务器之间的通讯。内容简单,便于学习。
    2016-12-12
  • Android Flutter实现搜索的三种方式详解

    Android Flutter实现搜索的三种方式详解

    这篇文章主要为大家详细介绍了Android Flutter实现搜索的三种方式,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下
    2022-08-08

最新评论