欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2023-11-26 19:16:22
使用方法是这样的,activity.showdialog()激发activity.oncreatedialog()创建dialog,然后显示之,便于多个dialog的统一管...

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