//依赖
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) { } }