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;
      }

  • 相关阅读:
    bcdedit /copy {current} /d "xxx" 报错,提示找不到系统文件
    Moving docker images location to different partition
    docker 使用save和load命令来转移image
    docker image rm ubuntu 失败
    yum国内镜像配置
    VMware下安装CentOS7 无法通过桥接模式进行联网
    docker大概理解
    windows cmd 切换磁盘
    使用Git向GitHub上上传代码
    抛砖引玉——进程和线程的理解方式
  • 原文地址:https://www.cnblogs.com/ada-zheng/p/3156575.html
Copyright © 2011-2022 走看看