mvp基类+retrofit封装 请求数据

  //依赖

compile 'com.android.support:recyclerview-v7:26.1.0'

compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'

compile 'com.facebook.fresco:fresco:1.5.0'
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-scalars:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
compile 'com.youth.banner:banner:1.4.10'  //最新版本

compile 'com.squareup.retrofit2:adapter-rxjava2:2.3.0'

compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.7'
compile 'com.squareup.okhttp3:okhttp:3.9.0'

//view

public interface MyView {

         public  void  success(Bean bean);
         public  void  failure(Exception e);

}

//回调接口

public interface ModelCallBack {

    public  void  success(Bean bean);
    public  void  failure(Exception e);

}
//model

public class MyModel {

            public  void  getData(final ModelCallBack callBack){

                Map<String,String> map=new HashMap<>();
//http://api.svipmovie.com/front/columns/getVideoList.do?catalogId=402834815584e463015584e539330016
                map.put("catalogId","402834815584e463015584e539330016");
                APIFactory.getInstance().post("front/columns/getVideoList.do", map, new AbstractObserver<Bean>() {
                    @Override
                    public void onSuccess(Bean bean) {

                        callBack.success(bean);
                    }

                    @Override
                    public void onFailure(int code) {

                        callBack.failure(new Exception());
                    }
                });

            }

}

//presenter

public class MyPresenter extends BasePresenter<MyView>{

      private MyModel myModel;

    public MyPresenter() {
        this.myModel = new MyModel();
    }

    public  void getData(){

        myModel.getData(new ModelCallBack() {
            @Override
            public void success(Bean bean) {

                view.success(bean);
            }

            @Override
            public void failure(Exception e) {

                view.failure(e);
            }
        });
    }

}

//mainactivity

public class MainActivity extends BaseMvpActivity<MyView, MyPresenter> implements MyView {

    @BindView(R.id.recyclerview)
    RecyclerView recyclerview;
   private  MyAdapter adapter;
    @Override
    public MyPresenter initPresenter() {
        return new MyPresenter();
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        presnter.getData();
        recyclerview.setLayoutManager(new LinearLayoutManager(this));
        adapter=new MyAdapter(this);

        recyclerview.setAdapter(adapter);
    }


    @Override
    public void success(Bean bean) {
           adapter.add(bean);
    }

    @Override
    public void failure(Exception e) {

    }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值