android - 如何在 recyclerview 适配器中填充这些数据?
问题描述
我知道如何处理这种回应
[
{
“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 的内部列表。
任何帮助将不胜感激和承认。谢谢。
解决方案
您的适配器将保持不变。您只需要更改解析逻辑。
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;
}
推荐阅读
- reactjs - 我需要为 react-youtube 添加哪个加载器
- java - 如何删除“错误:找不到符号 holder.name.setText(personNames.get(position))”的错误
- python - Neo4j图形平台如何将数据发布到搜索框
- http-post - Microsoft Teams HttpPost 操作因 BadRequest 而失败
- jquery - Jquery - 在输入悬停时显示 div
- npm - 使用 KotlinJS 构建独立的 NPM 模块
- c# - 处理请求时发生未处理的异常。(asp.net 上的 Rest api 排序)
- python - 用户指导的 Jupyter 笔记本
- google-cloud-platform - 在 GCP 中关闭结算帐户和禁用结算帐户有什么区别?
- wordpress - “post_per_page”不显示指定的帖子数