一.View
1.写一个 iMyView 接口
public interface IMyView {
// 展示九宫格
void show_jiugongge(List<Jiugongge_Bean.DataBean> jiugongge_listview);}
2.在MainActivity 实现 implements IMyView
注意:后期一定要连接 Presenter
Presenter presenter = new Presenter();
presenter.getList(new Model(presenter), this);
3.(1)建立一个bean
(2)建立一个 网络 接口 类 HttpConfig
public static String base_url = "https://www.zhaoapi.cn/";
//首页九宫格
public static String shouye_JiuGongGe = "product/getCatagory";
(3)新建一个 RetrofitUtil 类
public class RetrofitUtil {
// 单例模式
private static RetrofitUtil retrofitUtil;
private final Retrofit retrofit;
public static RetrofitUtil getInstance(){
if (retrofitUtil == null){
retrofitUtil = new RetrofitUtil();
}
return retrofitUtil;
}
// 初始化 retorfit
public RetrofitUtil(){
retrofit = new Retrofit.Builder()
.baseUrl(HttpConfig.base_url)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create(new Gson()))
.build();
}
//指定服务
public <T> T createRequest(Class<T> clz) {
T t = retrofit.create(clz);
return t;
}
}
二.mode
1. 写一个 MyService 接口
public interface MyService {
// 九宫格
@HTTP(method = "GET", path = "product/getCatagory")
Observable<Jiugongge_Bean> getJiuGongGe(@QueryMap Map<String, String> jiugongge_map);}
2.写一个 IModel 接口
public interface IModel {
// 九宫格
void getJiuGongGe(Map<String, String> jiugongge_map);
}
- 写一个Model 实现 IModel 接口
public class Model implements IModel {
//获取p层数据
// 不要忘记下面 完成后 iPresenter.getListData(jiugongge_bean.getData()); 这一行代码
private final IPresenter iPresenter;
public Model(IPresenter iPresenter) {
this.iPresenter = iPresenter;
}
//九宫格
@Override
public void getJiuGongGe(Map<String, String> jiugongge_map) {
RetrofitUtil retrofitUtil = RetrofitUtil.getInstance();
MyService myService = retrofitUtil.createRequest(MyService.class);
Observable<Jiugongge_Bean> jiuGongGe = myService.getJiuGongGe(jiugongge_map);
jiuGongGe.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())// observeOn 被观察者
.subscribe(new Observer<Jiugongge_Bean>() {// subscribe 订阅 Observer观察者
@Override
public void onCompleted() {
Log.d("BookModel", "九宫格---完成----------");
}
@Override
public void onError(Throwable e) {
Log.d("BookModel", "九宫格---失败----------");
}
@Override
public void onNext(Jiugongge_Bean jiugongge_bean) {
Log.d("BookModel", "九宫格---完成----------");
// 一定要连接
iPresenter.getListData(jiugongge_bean.getData());
}
});
}
}
三. presenter
1.写一个 IPresenter 接口
public interface IPresenter {
// 进行IModel 和 IMyView 连接
void getList(IModel iModel, IMyView iMyView);
// 集合从新获取 然后放进 Model
void getListData(List<Jiugongge_Bean.DataBean> jiugongge_listview);
}
2.写一个 Presenter 类 进行实现 刚才的 IPresenter 接口
public class Presenter implements IPresenter {
private IMyView iMyView;
private FenLei_IMyView fenLei_iMyView;
@Override
public void getList(IModel iModel, IMyView iMyView) {
this.iMyView=iMyView;
Map<String, String> map = new HashMap<>();
iModel.getJiuGongGe(map);
}
//九宫格
@Override
public void getListData(List<Jiugongge_Bean.DataBean> jiugongge_listview) {
Log.d("aaa", "---p层展示九宫格------------------"+jiugongge_listview);
// 添加参数
// map.put("uid","71");
iMyView.show_jiugongge(jiugongge_listview);
}