对于RecyclerView不显示数据网上有很多解释,大体上就是:Adapter没有数据,忘记设置LinearLayoutManager,RecyclerView不显示数据我遇到了另一种原因
一般来说,Adapter只创建一次,调用Adapter的notifyDataSetChanged来达到刷新数据的目的,而Adapter的数据正是初始化的时候作为构造函数的参数传递给Adapter的。因此在程序声明周期里传递给Adapter的数组引用不能被更改,因为一旦更改数组引用变意味着失去了Adapter里面的数据控制权。
正如上面所说,我这里出错的原因正是因为在重构代码的时候,误将数组初始化的代码放到了setData()这个函数中,而在刷新数据前调用了clear()方法清除数据,setData()之后引用指向了新的内存地址,因此在调用notifyDataSetChanged导致了数据为空不显示
版权声明:本文为BaoZhiHeng原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。