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

  • 相关阅读:
    机器学习 —— 多元线性回归
    利用Python实现kNN算法
    Python下的OpenCV学习 02 —— 图像的读取与保存
    Python下的OpenCV学习 01 —— 在Linux下安装OpenCV
    Linux check whether hyperthreading is enabled or not
    Centos7 安装单节点Torque PBS
    CentOS 7中以runfile形式安装CUDA 9.0
    Linux /etc/profile文件详解
    Linux下Makefile学习笔记
    使用 Eigen 3.3.3 进行矩阵运算
  • 原文地址:https://www.cnblogs.com/ada-zheng/p/3156575.html
Copyright © 2011-2022 走看看