RecyclerView完成初始化并设置了adapter,网络获取数据后notifyDataSetChanged,报错No adapter attached; skipping layout
时间: 2024-03-02 19:51:01 浏览: 47
这个错误通常是因为在网络获取数据后调用了`notifyDataSetChanged()`方法,但此时RecyclerView还没有设置Adapter,导致出现了“没有设置Adapter”的错误。解决方法是在设置Adapter之后再调用`notifyDataSetChanged()`方法。
你可以按照下面的步骤进行操作:
1. 在RecyclerView完成初始化之后,设置Adapter并将RecyclerView与Adapter关联起来。
2. 网络获取数据后,更新Adapter中的数据。
3. 在更新数据之后,再调用`notifyDataSetChanged()`方法。
具体代码如下:
```
// 初始化RecyclerView
RecyclerView recyclerView = findViewById(R.id.recyclerView);
// 设置LayoutManager
recyclerView.setLayoutManager(new LinearLayoutManager(this));
// 设置Adapter
MyAdapter adapter = new MyAdapter();
recyclerView.setAdapter(adapter);
// 网络获取数据
List<Data> dataList = fetchData();
// 更新Adapter中的数据
adapter.setData(dataList);
// 调用notifyDataSetChanged()方法
adapter.notifyDataSetChanged();
```
这样就可以避免“没有设置Adapter”的错误了。
阅读全文