我正在从News Api网站获取新闻详细信息。我正在使用 ViewModel 架构,以便在方向更改时设备不会获取结果。
根据各种 turorials,我能够使用改造和视图模型购买将结果获取到回收器视图,并提供静态参数作为对其余 API 的查询。
private void loadTopHeadlines() {
ApiInterface apiInterface = ApiClient.getApiClient().create(ApiInterface.class);
Call<TopHeadlinesResponse> response = apiInterface.getTopHeadlines("in", 20, 1,
"api_key");
response.enqueue(new Callback<TopHeadlinesResponse>() {
@Override
public void onResponse(Call<TopHeadlinesResponse> call, Response<TopHeadlinesResponse> response) {
topHeadlinesResponse.setValue(response.body().getArticles());
}
@Override
public void onFailure(Call<TopHeadlinesResponse> call, Throwable t) {
}
});
}
正如您在创建的 ViewModel 类中看到的,方法 getTopHeadlines(( 使用静态参数。如何将其更改为动态参数。
静态参数
Call<TopHeadlinesResponse> response = apiInterface.getTopHeadlines("in", 20, 1,
"api_key");
动态参数
Call<TopHeadlinesResponse> response = apiInterface.getTopHeadlines(dynamic, dynamic, dynamic,
"api_key");
所以基本上你的方法应该接受这些参数,例如:
private void loadHeadlines(String stringValue, int number, int otherNumer)
//...do some stuff
Call<TopHeadlinesResponse> response = apiInterface.getTopHeadlines(stringValue, number, otherNumber, "api_key");
//rest stays the same
}