zoukankan      html  css  js  c++  java
  • List集合使用注意的问题

    在做自动保存草稿的功能遇到集合数据的问题,先贴自动保存草稿的代码

    /**
    * 每5 秒保存一次草稿
    */
    private void startDraftTimerTask(){
    if (draftTimer == null) {
    draftTimer = new Timer(true);
    draftTimer.schedule(new TimerTask() {
    @Override
    public void run() {
    if(!isStopSave){
    initDraft();
    addCacheDraft();
    }
    }
    }, 5000, 5000);
    }
    }
     initDraft()这个方法里面会执行下面的代码
     //保存已选照片
    Bimp.address.clear();
    for (int i = 0; i < photoList.size(); i++) {
    Bimp.address.add(photoList.get(i).getPath());
    }
    mDraft.setImageList(Bimp.address);
    自动保存草稿每5秒保存一次,配置草稿的内容 这个mDraft.setImageList(Bimp.address); 
    mDraft这个类是这个 ModelDraft 实体类
    /**
    * 类说明: 草稿箱
    *
    * @author wz
    * @version 1.0
    * @date 2015-1-26
    */
    public class ModelDraft extends SociaxItem {
    /**
    * 图片地址列表集合
    */
    private ArrayList<String> imageList = new ArrayList<>();

    public ArrayList<String> getImageList() {
    return imageList;
    }

    public void setImageList(ArrayList<String> imageList) {
    if(this.imageList.size() > 0) {
    this.imageList.clear();
    }
          this.imageList.=imageList;
        }
    }
    每次保存草稿都会执行下面清空数据并赋值
    mDraft.setImageList(Bimp.address);
     if(this.imageList.size() > 0) {
    this.imageList.clear();
    }
    this.imageList.=imageList;
    每次调用最后导致集合imageList 都是空集合,地址一样导致全部清空,一直没找见问题都不知道啥问题导致的
    最后修改为
    if(this.imageList.size() > 0) {
    this.imageList.clear();
    }
    this.imageList.addAll(imageList)
    然后数据就都有了,在此记录一下这个问题,以后集合使用尽量使用添加,不要直接赋值

    by 郝金刚


  • 相关阅读:
    图床_shell命令passwd
    图床_shell命令usermod
    图床_shell命令groupadd
    图床_shell命令userdel
    图床_shell命令useradd
    图床_shell命令whereis
    图床_shell命令find
    图床_shell命令which
    图床_shell命令locate
    图床_shell命令free
  • 原文地址:https://www.cnblogs.com/widgetbox/p/9542984.html
Copyright © 2011-2022 走看看