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

时间:2023-08-17 19:44:30 

使用方法是这样的,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;
         }
     }

标签:动态,改变,对话框
0
投稿

猜你喜欢

  • C#中使用UDP通信的示例

    2022-11-19 21:09:07
  • Java springboot 配置文件与多环境配置与运行优先级

    2022-08-03 03:36:01
  • thymeleaf实现前后端数据交换的示例详解

    2023-04-18 12:02:54
  • Java如何利用return结束方法调用

    2022-05-20 19:58:35
  • c#扩展datatable转json示例

    2022-08-19 10:44:55
  • 基于标准http实现Android多文件上传

    2023-05-28 05:55:28
  • C#实现排列组合算法完整实例

    2023-04-16 09:36:59
  • java发起http请求调用post与get接口的方法实例

    2022-12-28 23:22:58
  • vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离

    2021-06-16 04:05:47
  • Java 超详细讲解IO操作字节流与字符流

    2022-04-28 20:09:57
  • Java调取创蓝253短信验证码的实现代码

    2021-11-05 00:48:10
  • C#实现简单学生成绩管理系统

    2023-03-14 01:50:22
  • Java性能优化技巧汇总

    2023-01-05 16:26:31
  • Android Room数据库多表查询的使用实例

    2022-11-07 02:49:49
  • Java多线程synchronized同步方法详解

    2023-06-30 00:39:42
  • springboot与vue详解实现短信发送流程

    2023-05-24 14:55:29
  • MyBatis学习教程(七)-Mybatis缓存介绍

    2022-12-24 00:11:34
  • 一篇文章带你了解JAVA结构化编程详情

    2022-01-15 13:06:34
  • C#中foreach原理以及模拟的实现

    2022-04-07 23:18:12
  • Spring配置shiro时自定义Realm中属性无法使用注解注入的解决办法

    2022-09-18 11:18:22
  • asp之家 软件编程 m.aspxhome.com