两个List数据被同步了

寒冰大神 2018-01-05 05:45:52
ViewPager 下有两个GridView,
@Override
public void success(List<Drivenlnventory.DataBean.GoodsListBean> list) {
addGoodsList = list;
addAdapter = new AddAdapter(getActivity(), addGoodsList);
addGoodsGridView.setAdapter(addAdapter);

minusGoodsList = list;
minusAdapter = new MinusAdapter(getActivity(), minusGoodsList);
minusGoodsGridView.setAdapter(minusAdapter);
}

如上 一个list赋值给两个list(addGoodsList 和addGoodsList ),分别用在两个adapter(addAdapter 和 minusAdapter )上,分别在两个GridView(addGoodsGridView和minusGoodsGridView)显示
当在addAdapter 里修改addGoodsList 数据时(没对minusAdapter 进行操作),minusGoodsList 里的相同数据也同时被修改。为什么呢。。。
尝试过addGoodsList 和minusGoodsList 新new 出来,再addAll(list)或者 循环add(item) ,结果还是一样,修改了一个,另一个也跟着被修改了
这是啥问题。。。怎么解决
...全文
465 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaohuh421 2018-01-12
  • 打赏
  • 举报
回复
因为你估计只是new了列表, 而对象没有重新new出来吧. 因为查询得出来的对象没变, 只是放到两个列表中, 你修改的时候可以这样. 把原来的对象从list删除掉, 再new一个, 把数据复制过去, 再添加到list中.
moonFY 2018-01-09
  • 打赏
  • 举报
回复
addGoodsList 与 minusGoodsList 本质上 使用的还是 list ,你在使用 对2 个GridView 进行 添加数据时 只是 改变了一下 list 的名称 没有改变地址,所以 你在 更改其中一个 GridView 的数据时 另一个也会变, list 的值 也会变, 你要不想这样的话,就在 赋值之前 深度COPY , 这样GridView中的值才不会变。
桃子先生 2018-01-08
  • 打赏
  • 举报
回复
引用的空间地址是一个,当然会同时改变。
jklwan 2018-01-08
  • 打赏
  • 举报
回复
list同时用到两个adapter,请用addAll;或者adapter中定义一个list,使用addAll把传入的list添加到list中。
  • 打赏
  • 举报
回复
http://blog.csdn.net/demonliuhui/article/details/54572908 找到一篇关于浅copy和深copy的博文 应该能解决楼主的问题 基本思路就是自己实现 “=” 这个操作
寒冰大神 2018-01-06
  • 打赏
  • 举报
回复
引用 2 楼 www378660084 的回复:
指向同一个对象。。 复制一份吧。
试过addGoodsList 和minusGoodsList 新new 出来,再addAll(list)或者 循环add(item) ,结果还是一样,修改了一个,另一个也跟着被修改了
寒冰大神 2018-01-06
  • 打赏
  • 举报
回复
引用 3 楼 yu_duan_hun 的回复:
肯定会这样,一般网络获取的列表不会直接用原有列表,刷新: list.clear(); list.addAll(newList); 上拉加载: list.addAll(newList);
试过addGoodsList 和minusGoodsList 新new 出来,再addAll(list)或者 循环add(item) ,结果还是一样,修改了一个,另一个也跟着被修改了
钰娘娘 2018-01-06
  • 打赏
  • 举报
回复
肯定会这样,一般网络获取的列表不会直接用原有列表,刷新: list.clear(); list.addAll(newList); 上拉加载: list.addAll(newList);
Snow_Leaf 2018-01-06
  • 打赏
  • 举报
回复
指向同一个对象。。 复制一份吧。
寒冰大神 2018-01-05
  • 打赏
  • 举报
回复
list,addGoodsList ,minusGoodsList 3个列表,修改了一个怎么其他都跟着变了啊?

80,362

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧