一.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);
}