You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安卓RecyclerView加载API返回数据首次启动为空,是同步问题吗

问题根因
  • API网络请求属于异步操作,不会阻塞onCreate的执行流程:你在onCreate中完成RecyclerView初始化、Adapter绑定时,接口还没有返回结果,此时Adapter绑定的是初始空数据集,所以页面加载完成后RecyclerView无内容展示。
  • 等待一段时间后接口请求完成,数据集已经更新到Adapter持有,但你没有主动通知RecyclerView刷新;点击按钮时你手动调用了notifyDataSetChanged(),RecyclerView会重新读取当前Adapter的数据集完成渲染,所以内容正常展示。
修复方案
  • 找到你getCategories方法中的API请求成功回调逻辑
  • 在回调中完成数据集赋值给Adapter的操作后,立刻在主线程调用Adapter的notifyDataSetChanged()即可,不需要依赖按钮点击触发。

特殊说明:如果你的请求回调运行在子线程,必须先切到主线程再执行刷新操作,否则会触发调用线程异常,示例如下:
Kotlin版本:

runOnUiThread {
    yourAdapter.notifyDataSetChanged()
}

Java版本:

runOnUiThread(new Runnable() {
    @Override
    public void run() {
        yourAdapter.notifyDataSetChanged();
    }
});

内容的提问来源于stack exchange,提问作者Hugo S M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:30:00