zoukankan      html  css  js  c++  java
  • dialog里面数据更新问题

    在实际开发中经常会用到showDialog(int id)的方法来展示一个对话框,但是会遇到一个Dialog展示之后下次再show的时候对话框的界面还是上次展示的那个,而不是我们想象的界面。很多时候我们打开一个对话框的时候里面的元素是根据需求变化的,这个时候就遇到刷新对话框的问题。这个时候就需要用到重写onPrepareDialog方法了
    现在有两方面需求:
    1、对话框的title或者message,这个时候在onPrepareDialog里面加上以下代码就可以:

    public void onPrepareDialog(int id, Dialog dialog) {
          switch(id) {
          case (TIME_DIALOG) :
             String string = "";
             AlertDialog timeDialog = (AlertDialog)dialog;
             timeDialog.setMessage(string);
             timeDialog.setTitle(string);
             break;
          }
      }
    但是有的时候我们要改变的不仅仅是title和massage,有可能对话框里面的布局是自定义的布局,我们要改变的是自定义布局里面的数据,这个时候我们期望的是每一次打开此对话框都可以重新加载一遍。代码如下:
    public void onPrepareDialog(int id, Dialog dialog) {
       switch(id) {
        case (TIME_DIALOG) :
           removeDialog(id);
           break;
      }
    }
    这个时候可能会遇到在对话框中调用
    removeDialog(ID)报错的情况,解决办法是
    case ID: {
       final String []citys = getServiceType();
      Alert_Dialog dialog = new Alert_Dialog.Builder(NetDataPreferences.this).setTitle(R.string.netdata_adjust_order_service_type).setSingleChoiceItems(citys, getLocation(citys,0, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
              try {
          dialog.dismiss();
         } catch (Exception e) {
          // TODO: handle exception
         }
        }
       }).setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
         try {
         dialog.dismiss();
         } catch (Exception e) {
          // TODO: handle exception
         }
        }
       }).create();
       return dialog;
      }

  • 相关阅读:
    Jenkins pipeline 流水线部署 并自定义 buildName 和 buildDescription 显示信息
    Jenkins中插件 pipeline 中声明式流水线的语法
    Linux 发送https POST请求sample ===Slack 频道中发送消息通知
    Jenkins pipline
    jenkins pipeline中获取shell命令的输出
    Chrome浏览器对标签进行整理和分组
    MacBook 对rar后缀的文件进行加压
    Macbook中Docker一栏的应用程序图标不见了,怎么找出来?
    [Pytest]运行指定的case
    软考 高项 重点知识点
  • 原文地址:https://www.cnblogs.com/ada-zheng/p/3156575.html
Copyright © 2011-2022 走看看