我对以下内容感到有点困惑。
我正在使用Retrofit和RxJava2,我使用List<List<CustomModel>>
和Observable.zip
设法得到return Arrays.asList(list1, list2, list3);
,现在看起来如下:
[list1的,list2中,项目list3]
我可以使用以下方式访问列表并打印每个项目:
for (List<CustomModel> b : customModel) {
for (customModel c : b) {
Print INDIVIDUAL ITEMS
Log.d("id: ", c.getId());
Log.d("name: ", c.getName());
Log.d("symbol: ", c.getSymbol());
Log.d("rank: ", c.getRank());
}
但我无法使用以下方法将数据发送到我的自定义适配器:
recyclerAdapter = new RecyclerAdapter(getApplicationContext(), b);
recyclerView.setAdapter(recyclerAdapter);
recyclerAdapter.notifyDataSetChanged();
swipeRefreshLayout.setRefreshing(false);
仅向我提供阵列上的最新列表,但不是过去,因为在将数据传递到我的Recyclerview时会被覆盖。
在recyclerView中显示所有3个列表的最佳方法是什么?
答案 0 :(得分:0)
假设CustomModel
是您的模型类。 RecyclerAdapter
是您的类RecyclerView.Adapter<RecyclerAdapter.MyViewHolder>
,其中RecyclerAdapter.MyViewHolder
是package RecyclerAdapter
内的类,它扩展了RecyclerView.ViewHolder。
private List<CustomModel> modelList = new ArrayList<>();
private RecyclerView recyclerView;
private RecyclerAdapter mAdapter;
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
mAdapter = new RecyclerAdapter(modelList);
RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new DefaultItemAnimator());
recyclerView.setAdapter(mAdapter);
每当有新数据出现时,都不会创建新的适配器&amp;分配给recyclerview 。只需添加到现有列表&amp;通知适配器。将出现新项目。
for (List<CustomModel> customModels : customModelLists) {
modelList.addAll(customModels);
}
mAdapter.notifyDataSetChanged();
我个人认为此链接很有用:https://www.androidhive.info/2016/01/android-working-with-recycler-view/