我想在onLoadFinished()
中使用从CursorLoader
返回的游标数据填充RecyclerView。 RecyclerView按预期填充,
但我仍然得到相同的错误“没有适配器附加;跳过布局”
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
recyclerViewAdapter = new RecyclerViewAdapter(getApplicationContext(), data);
//attach Layout Manager to RecyclerView
recyclerView.setLayoutManager(newLinearLayoutManager(getApplicationContext()));
//attach adapter to RecyclerView
recyclerView.setAdapter(recyclerViewAdapter);
}
答案 0 :(得分:1)
最后几天后我设法找出问题...我做的是在我的onActivityCreated中创建一个我的RecyclerView适配器的实例,只将我的Fragment的上下文传递给Adapter的构造函数并设置适配器到我的RecyclerView
recyclerViewAdapter = new RecyclerViewAdapter(getActivity());
recyclerView.setAdapter(recyclerViewAdapter);
因此,RecyclerView Framework附加了一个适配器,因此没有跳过布局。光标数据ara分别从CursorLoader的onLoadFinished()和onLoadReset()方法传递(交换)到RecyclerView适配器
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
recyclerViewAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
recyclerViewAdapter.swapCursor(null);
}
swapCursor方法已经在我的RecyclerView Adapter类中实现了自定义
答案 1 :(得分:0)
无论何时连接适配器,只要包含活动/片段需要布局,即当屏幕首次显示到屏幕时,RecyclerView
就需要在屏幕上显示出来。用户。
这意味着在CursorLoader
加载完成之前,您的布局可能会显示给用户。为此,RecyclerView
将需要查询其适配器以确定要显示的内容。
首次创建Activity / Fragment时,应该设置布局管理器和空适配器,然后在光标加载完成后更新适配器的内容。
答案 2 :(得分:0)
创建视图时显示此错误消息。有一个recyclerview但没有设置适配器。我建议创建并将适配器设置为recyclerview onCreate或onCreateView(如果片段)。然后只需将光标或数据设置为适配器onLoadFinished,并通知适配器数据更改..
或者只是忽略错误消息。错误消息没有造成任何损害; - )