如何在 recyclerview 适配器中填充这些数据?
Posted
技术标签:
【中文标题】如何在 recyclerview 适配器中填充这些数据?【英文标题】:How to populate this data in recyclerview adapter? 【发布时间】:2021-06-10 04:07:11 【问题描述】:我知道如何处理这种响应
[
“id": "1027",
“name”: “abcd”,
"age”: “30”
,
“id”: "713",
"name": "xyz”,
“age”: “31”
]
我是这样做的:
Call<List<info>> call = apiInterface.getInfo(id);
call.enqueue(new Callback<List<info>>()
@Override
public void onResponse(Call<List<info>> call, Response<List<info>> response)
myList = response.body();
myAdapter = new coursesAdapter(myList, context);
recyclerview.setAdapter(myAdapter);
@Override
public void onFailure(Call<List<info>> call, Throwable t)
Toast.makeText(context, t.getMessage(), Toast.LENGTH_LONG).show();
);
但这是我得到的 json 响应:
"catalogue": [
“id": "1027",
“name”: “abcd”,
"age”: “30”
,
“id”: "713",
"name": "xyz”,
“age”: “31”
]
如何在我的 recyclerview 中填充此响应,或者如何删除目录并直接访问我的 recyclerview 的内部列表。
我们将不胜感激和感谢任何帮助。谢谢。
【问题讨论】:
【参考方案1】:您的适配器将保持不变。你只需要改变解析逻辑。
Call<YourObj> call = apiInterface.getInfo(id);
call.enqueue(new Callback<YourObj>()
@Override
public void onResponse(Call<YourObj> call, Response<YourObj> response)
YourObj reponse = response.body();
myAdapter = new coursesAdapter(reponse.info, context);
recyclerview.setAdapter(myAdapter);
@Override
public void onFailure(Call<List<info>> call, Throwable t)
Toast.makeText(context, t.getMessage(), Toast.LENGTH_LONG).show();
);
您的 Pojo 类应如下所示,根据您的要求对您的 pojo 类进行必要的更改。
public class Info
@SerializedName("id")
public String id;
@SerializedName("name")
public String name;
@SerializedName("age")
public String age;
public class YourObj
@SerializedName("catalogue")
public List<Info> info = null;
【讨论】:
这里有问题,Call以上是关于如何在 recyclerview 适配器中填充这些数据?的主要内容,如果未能解决你的问题,请参考以下文章
FirebaseRecyclerAdaptor 不会填充 recyclerview
cursor 第一次为空,recyclerView 不显示游标数据
如何为从 Firestore 填充的 RecyclerView 实现过滤器?
在 RecyclerView 适配器 notifyDataSetChanged() 之后未调用 onBindViewHolder