mvp基类+retrofit封装 请求数据

来源:互联网 发布:linux gdb调试core文件 编辑:程序博客网 时间:2024/06/11 14:30

  //依赖

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) {    }}



原创粉丝点击