gpt4 book ai didi

android - 通过 IMDB API 使用改造

转载 作者:太空狗 更新时间:2023-10-29 13:56:33 27 4
gpt4 key购买 nike

我正在构建一个简单的 IMDB 应用程序,除了一个微小的细节,我几乎已经完成了。 API( http://www.omdbapi.com/ ) 一次只提供 10 部电影,用户可以指定他们想要的“页面”。我想检索所有条目。我的代码看起来像这样:

//This populates the list
private void populateList(String title) {
myAPI.getSearchResults(title, page).enqueue(new Callback<Movies>() {
@Override
public void onResponse(Call<Movies> call, Response<Movies> response) {
movies = response.body().getSearch();
recyclerView.setAdapter(new ItemAdapter(movies));
recyclerView.addOnItemTouchListener(
new ItemClickableListener(getActivity(), new ItemClickableListener.OnItemClickListener() {
@Override
public void onItemClick(View view, int position) {
String id = movies.get(position).getImdbID();
showDetails(id, view);
}
}));
}

@Override
public void onFailure(Call<Movies> call, Throwable t) {
Log.d(TAG, "Error: " + t);
}
});
}

在我的界面中:

//For populating the list
@GET("?")
Call<Movies> getSearchResults(@Query("s") String title, @Query("page") int pages);

有一种方法可以知道总共有多少条目,但查询必须至少运行一次才能检索该信息。我尝试用“do...while”循环修复它,并将每批连续的电影添加到列表中,然后才填充 RecyclerView 但它只是行不通(它会离开循环而不显示任何东西)。也许我忽略了一些东西,这是正确的答案,但即便如此 - 难道没有更优雅的方法吗?

最佳答案

我想你需要EndlessRecyclerView十页十页检索。使用以下代码:

mRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
mAdapter = new MyAdapter(getActivity(), this);
scrollListener = new EndlessRecyclerOnScrollListener((LinearLayoutManager) mRecyclerView.getLayoutManager()) {
@Override
public void onLoadMore(int page) {
callWebservice(page);
}
};
mRecyclerView.addOnScrollListener(scrollListener);
mRecyclerView.setAdapter(mAdapter);

callWebservice 完成后,将项目添加到您的列表中:

        @Override
public void onResponse(Call<List<ShortVideoModel>> call, Response<List<ShortVideoModel>> response) {
mAdapter.addItems(response.body());
}

关于android - 通过 IMDB API 使用改造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39128624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com