Hello! 欢迎来到小浪资源网!


Android RecyclerView数据不更新:notifyDataSetChanged()、数据设置和异步请求该如何处理?


Android RecyclerView数据不更新:notifyDataSetChanged()、数据设置和异步请求该如何处理?

android recyclerview 增加数据后视图不更新

适配器未通知数据更改

数据加载完成时,应调用 notifydatasetchanged() 通知适配器数据已更改。在给定代码中,缺少此步骤。

未设置数据

确保数据集合 items 不为空。如果 items 为空,则即使调用 addall() 或 resetall(),也不会触发数据更新。

item 数据未设置完整

代码中循环内只设置了 item.setcover(userarchive.getcover()),但其他数据未设置,请确保每个 item 对象均正确设置了数据。

异步网络请求

当网络请求异步执行时,应确保 ui 线程可在请求完成时接收到数据。使用 runonuithread() 方法可确保数据更新在线程中执行。

代码示例

activity.runOnUiThread(() -> {     if (append) {         adapter.addAll(items);     } else {         adapter.resetAll(items);     }     adapter.notifyDataSetChanged(); });

相关阅读