【Android】关于不删除当前界面数据刷新列表问题

前言:

        App中有一模块为应用中心,改版之后低仿了ZFB中应用管理的模式,但是就按照我们之前的开发方式,首页刷新时会将数据清空一下然后重新赋值给list填充到界面上,甲方领导看了之后感觉体验不是很好,因为IOS端是不清空数据刷新的,所以要求Android端进行修改!(因涉及甲方,所以不贴图了)

动手:

        本人开发积累的知识不是很足,所以在List上面也没啥积累,就先试试List和Adapter常用的几种方式,但是不是很起作用,百度了好像也没啥解决这种小问题的,于是还是自己动手丰衣足食!

        首先看了下代码逻辑:

 recentlyAdapter.clearData(); //先清空adapter中的数据
 String cacheData = lruJsonCache.getAsString("newslist");//然后获取数据(这个是从缓存中取数据,从网络获取数据也是一个意思,主要是能赋值)
 List<MainApp.RecentBean> newsList = gson.fromJson(cacheData, new TypeToken<List<MainApp.RecentBean>>() {
            }.getType());
 recentlyAdapter.addData(newsList);//最后给adapter赋值

        清空界面的操作就在recentlyAdapter.clearData();这句话。

修改:

        之前定义了List的全局变量

List<MainApp.RecentBean> listRecent = new ArrayList<>();

我在刷新的时候取消了上面clearData的操作,做了一个判断

List<MainApp.RecentBean> newsList = gson.fromJson(jso, new TypeToken<List<MainApp.RecentBean>>() {}.getType());
if (listRecent != null && listRecent.size() > 0) {
    listRecent.clear();
    listRecent.addAll(newsList);
    recentlyAdapter.notifyDataSetChanged();
 } else {
    recentlyAdapter.addData(newsList);
//  recentlyAdapter.notifyDataSetChanged();
 }

先判断了全局变量listRecent是否为空以判断是否第一次获取数据,如果不是,先将全局变量清空,然后将最新的数据赋给全局变量,最后用adapter的notifyDataSetChangerd()方法来刷新adapter

最后:

        问题算是被解决了,但是应该不是最完美的,才疏学浅,希望有人看见了能够一起交流!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值