繁体   English   中英

显示带有CustomList数组的recylerview数据

[英]Display recylerview Data with Array of CustomLists

我对以下内容有些困惑。

我正在使用Retrofit和RxJava2,并且通过使用Observable.zip设法获得List<List<CustomModel>>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个列表的最佳方法是什么?

假设CustomModel是您的模型类。 RecyclerAdapter是扩展RecyclerView.Adapter<RecyclerAdapter.MyViewHolder> ,其中RecyclerAdapter.MyViewHolder是扩展RecyclerView.ViewHolder package RecyclerAdapter内的类。

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);

每当收到新数据时, 请勿创建新适配器并分配给recyclerview 只需添加到现有列表并通知适配器即可。 新项目将出现。

for (List<CustomModel> customModels : customModelLists) {
    modelList.addAll(customModels);
}

mAdapter.notifyDataSetChanged();

我个人认为此链接有用: https : //www.androidhive.info/2016/01/android-working-with-recycler-view/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM