我正在尝试使用此 api 联网:https : //api.jikan.moe/v3/schedule
所以我通过创建 ApiClient.java 类来使用改造,这是它的代码:
public class ApiClient {
public static final String BASE_URL = "http://api.themoviedb.org/3/";
private static Retrofit retrofit = null;
public static Retrofit getClient() {
if (retrofit==null) {
retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
完整的链接端点的接口是这样的:
public interface ApiInterface {
@GET("schedule")
Call<MainResponse> getSchedule();
}
所以我在建模数据中使用了可序列化,并创建了 MainResponse.java 类来获取 api 中的主要 monday 数组:
公共类 MainResponse {
@SerializedName("monday")
private List<Schedule> monday;
public List<Schedule> getMonday() {
return monday;
}
public void setMonday(List<Schedule> monday) {
this.monday = monday;
}
}
然后我创建一个新的建模类来获取类 Schedule.java 中 monday 数组的对象项列表:
public class Schedule {
@SerializedName("title")
private String title;
public Schedule(String title) {
this.title = title;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
最后在 MainActivity 我称之为:
final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.schedule_recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
ApiInterface apiService =
ApiClient.getClient().create(ApiInterface.class);
Call<MainResponse> call = apiService.getSchedule();
call.enqueue(new Callback<MainResponse>() {
正如你所看到的,我使用了一个 recycleview 来获取 monday 数组的标题,但问题是当我运行应用程序时,它只是因为这个而崩溃:
尝试在空对象引用上调用虚拟方法“java.util.List com.example.user_pc.capstonestage2.MainResponse.getMonday()”
FFIVE
qq_花开花谢_0
相关分类