Fragment复用

2019-07-11  本文已影响0人  玖玖君

1· 主fragment或者主activity里面定义一个数组与titles

 public String[] arr = {"One", "Two", "Three"};
 
private ArrayList<String> titles;

2·for循环遍历添加到复用fragment

 for (int i = 0; i < arr.length; i++) {
            titles.add(arr[i]);
            list.add(new GankListFragment(arr[i]));
        }

解析数据的话就在Api Server里面加入注解@path来设置占位符

@GET("data/{tech}/{num}/{page}")
Observable<GankBean> getGankData(@Path("tech") String tech, @Path("num") int num, @Path("page") int page);

解析时添加几个字段

  String tech,int ios,int web


 public void getGank(final BaseCallBack<GankBean,String>callBack,String tech,int ios,int web){
        HttpUtil.getHttpUtil().getServer(GankService.sBaseUrl,GankService.class)
                .getGankData(tech,ios,web).compose(RxUtil.<GankBean>rxObservableTransformer())
                .subscribe(new Observer<GankBean>() {
                    @Override
                    public void onSubscribe(Disposable d) {

                    }

                    @Override
                    public void onNext(GankBean gankBean) {
                    callBack.onSuccess(gankBean);
                    }

                    @Override
                    public void onError(Throwable e) {
                    callBack.onFail("网络错误:"+e.getMessage());
                    }

                    @Override
                    public void onComplete() {

                    }
                });

Fragemnt里面实现方法是

    public GankListFragment(String tech) {
        this.tech=tech;
    }

  //添加数据
    @Override
    protected void initData() {
        if (presenter!=null){
            presenter.getGank(tech,num,page);
        }

    }
上一篇 下一篇

猜你喜欢

热点阅读