您如何访问改造响应<列表中的对象方法<Object>>



在这种情况下,我能够实现从对象类调用方法的目标:

@Override
            public void onResponse(Call<ServerResponse> call, retrofit2.Response<ServerResponse> response) {
                ServerResponse resp = response.body();
                if(resp.getResult().equals(Constants.SUCCESS)){
                    progress.setVisibility(View.GONE);
                    tv_message.setVisibility(View.GONE);
                    dialog.dismiss();
                    Snackbar.make(getView(), resp.getMessage(), Snackbar.LENGTH_LONG).show();
                }else {
                    progress.setVisibility(View.GONE);
                    tv_message.setVisibility(View.VISIBLE);
                    tv_message.setText(resp.getMessage());
                }
            }

但在问题实例中,响应是服务器响应对象列表。 所以当我尝试执行以下操作时:

@Override
                public void onResponse(Call<List<ServerResponse>> call, Response<List<ServerResponse>> response) {
                    List<ServerResponse> resp = response.body();
                    if(resp.getResult().equals(Constants.FAILURE)){
                        tv_noResponses.setText(resp.getMessage());
                        progressBar.setVisibility(View.INVISIBLE);
                    }else {
                        replyList = (ArrayList<ServerResponse>) response.body();
                        Collections.reverse(replyList);
                        progressBar.setVisibility(View.INVISIBLE);
                        mAdapter = new ReplyRecyclerAdapter(replyList, getActivity());
                        recyclerView.setAdapter(mAdapter);
                    }
                }

方法"getResult(("和"getMessage(("当然不能通过List接口使用,我该怎么做才能使它们可用?

getResult()getMessage()ServerResponse 类中的方法,用于为您提供请求的结果作为您的首选项。

在第一个请求中,您希望服务器响应将其解析为 ServerRespons 对象。但在第二个请求中,您需要一个 sth 列表。

正如我从您的代码中理解的那样。 您正在尝试检索某些内容的列表(重播列表(以将其填充到RecyclerView中。

你不需要getResult()getMessage()在这里。 只需制作一个

List<YourModelOfRecyclerView> . 如果您的请求出错onError()将被调用。

您还可以修改 JSON 响应以使用列表添加自定义服务器响应。您将不再需要ServerResponse而是包装自定义响应和列表的新模型。

最新更新