解析API数据 如何解析多个不同类型的数据

图片描述

首先知乎日报的API 是这样的
但是我只会解析stories 这个数组 内的数据

以下是bean类 stories类就不列出 如果有需要 再更改

public class Latest {

    private String date;
    private List<Stories> stories;
    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public List<Stories> getStories() {
        return stories;
    }

    public void setStories(List<Stories> stories) {
        this.stories = stories;
    }
}
public interface ZhiHuService {
    @GET("4/news/latest")
    Observable<Latest> getLatest();
    .......
}
public class RetrofitManager {

    private ZhiHuService mService;
    private OkHttpClient mBuilder;
    private Retrofit retrofit;

    private File cacheFile;
    private int cacheSize;
    private Cache cache;
    public static RetrofitManager builder(){
        return new RetrofitManager();
    }

    private RetrofitManager() {
        cacheFile = new File(AppContext.getContext().getCacheDir(),"response");//设置缓存路径
        cacheSize = 50 * 1024 * 1024; // 10 MiB 设置缓存大小
        cache = new Cache(cacheFile, cacheSize);

        mBuilder = new OkHttpClient.Builder()
                .addInterceptor(netInterceptor)
                .addNetworkInterceptor(netInterceptor)
                .cache(cache)
                .build();

        retrofit = new Retrofit.Builder()
                .client(mBuilder)
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                .baseUrl(API.BASE_ZHIHU_URL)
                .build();
        mService = retrofit.create(ZhiHuService.class);
    }
        .......
    
    public Observable<Latest> getLatest(){
        return mService.getLatest();
    }

获取当日消息的部分代码

 private void loadLatestNews(){
        RetrofitManager.builder().getLatest()
                .subscribeOn(Schedulers.io())
                .unsubscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Subscriber<Latest>() {
                    @Override
                    public void onCompleted() {
                        mRecyclerView.setAdapter(adapter);
                    }

                    @Override
                    public void onError(Throwable e) {

                    }

                    @Override
                    public void onNext(Latest latest) {
                        list.addAll(latest.getStories());
                    }
                });
    }

问题 : 如何获取日期并且添加到 Recyclerview中
可以在我所列出的代码中更改嘛
如果不可以可以列举下思路吗
谢谢

阅读 2.1k
1 个回答

日期只有天,你在item里面放置日期是不是很奇怪,不如用分类,把数据通过日进行分割。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题