android 基础的小问题1(Adapter的数据无法刷新)

关于Adapter的一些问题

1.adapter的notifyDataSetChanged()方法不能够刷新数据

一开始我以为是Adapter自身的问题.一般会这样解决.
在自定义的Adapter中提供一个这样的方法.

    public void setData(List<Bean> data){
        this.data= data;
    }   

当然这样能解决问题.但是到底为什么数据刷新不了呢.
其实不需要怎么想.
出现这种问题只有一种可能
必然是新的数据没有给Adapter.那来看一下我们一般怎么写的将数据给Adapter的呢.
通常有两种写法.其中一种是错误的 也就数据不能更新.
Activity中

public void initData(){
    ....添加数据
    data.add()
    adapter.notifyDataSetChanged();
    }

上面的是没有问题的.
再看我们通常还会将获取数据封装
同样是Activity中.

public List<Bean> getData(){
    List<Bean> d = new ArrayList<Bean>();
    ....获取数据的操作
    return d;
}

public void initData(){
data = getData();
adapter.notifyDataSetChanged();
}

然而这时候就刷新不了数据了.
除非你的自定义Adapter是内部类否则绝对刷新不了.
其实这里已经很明显了 data = getData

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值