如何在使用视图模型时将动态参数传递给安卓中的 rest api



我正在从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
}

最新更新