MVP的简单使用步骤

2019-10-07  本文已影响0人  残非

0,首先创建一个接口

public interface ApiServer {
String URL="https://gitee.com/Haoxueren/";
@GET("server/raw/master/columns/final_exam_02.json")
Observable<MyJson> getData();
}

1,定义一个view层的接口(一个成功的,一个失败的)

    public interface MainView {
        void onSussful(MyJson myJson);
        void  onFalied(String name);

    }

2,创建一个model层,创建一个接口

public interface onClick{
    void onOk(MyJson myJson);
    void  onNo(String name);
}

3,创建P层,实现model层的接口

import com.example.lenovo.kao02_zm0814_1.beans.MyJson;

/**
 * Created by Lenovo on 2019/8/14.
 */

public class MainPresenter implements MainModel.Myonclick{
private MainView mainView;
private final MainModel mainModel;

public MainPresenter(MainView mainView) {
    this.mainView = mainView;
    mainModel = new MainModel();
}

public void request(){
mainModel.request(this);
}
@Override
public void OnCheng(MyJson myJson) {
    mainView.OnSuccful(myJson);
}

@Override
public void onBai(String bai) {
mainView.onFalied(bai);
}

}

4,在实现的两个方法中,分别调用view层成功和失败的方法

5,创建view的成员方法

public MainView mainView;
private final MainModel mainModel1;

 public MainPresenter(MainView mainView) {
    this.mainView = mainView;
    mainModel1 = new MainModel();
}

6,创建一个方法,并在model层实现这个方法

public void addData(){
    mainModel1.addData(this);
}

7,接口改成本类的接口,并在该方法内进行网络数据的解析

public class MainModel {
public void request(final Myonclick myonclick) {
    Retrofit build = new Retrofit.Builder()
            .baseUrl(ApiServer.URL)
            .addConverterFactory(GsonConverterFactory.create())
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();
    build.create(ApiServer.class)
            .getData()
            .subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<MyJson>() {
                @Override
                public void onSubscribe(Disposable d) {

                }

                @Override
                public void onNext(MyJson myJson) {
                    myonclick.OnCheng(myJson);
                }

                @Override
                public void onError(Throwable e) {
                    myonclick.onBai(e.getMessage());
                }

                @Override
                public void onComplete() {

                }
            });
}

public interface Myonclick {
    void OnCheng(MyJson myJson);

    void onBai(String bai);
}

}

8,在Activity中创建并实现

presenter = new MainPresenter(this);
    presenter.addData();

只是个人理解

上一篇 下一篇

猜你喜欢

热点阅读