MVP

来源:互联网 发布:javascript cookie实例 编辑:程序博客网 时间:2024/06/03 18:46

实现思路

MainActivity
有一个getData的方法
里面new presenter
presenter里有一个方法getViewurl(String url),这个方法里new Model,调Model的方法。还要写Mainctivity
给一个有参构造器,在实现的方法里面调Mainctivity的方法
molde里写一个presenter,给一个有参构造器,然后在Mainctivity实现的方法里写解析
molde本来的方法getPreseterurl(String url)
这里调用封装的OK
然后调presenter实现接口的方法


先写接口
MyView里getperesenter(String json)
MyModel里getpresenterurl(String url)
MyPresenter里getmodel(String json)


Model实现MyModel
Presenter实现MyPresenter
View实现MyView

V层

package view;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.Toast;import com.google.gson.Gson;import java.util.List;import bean.Bewan;import jiekou.MyView;import kaoshi.mmvvpp.R;import presenter.Presenter;public class MainActivity extends AppCompatActivity implements MyView{    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        getData();    }    public void getData(){        Presenter presenter = new Presenter(this);        presenter.getViewUrl("http://120.27.23.105/ad/getAd");    }    @Override    public void getPRESENTERJson(final String json) {        runOnUiThread(new Runnable() {            @Override            public void run() {                Gson gson = new Gson();                Bewan bewan = gson.fromJson(json, Bewan.class);                List<Bewan.DataBean> data = bewan.getData();                String title = data.get(0).getTitle();                Toast.makeText(MainActivity.this,title,Toast.LENGTH_SHORT).show();            }        });    }}
P层

package presenter;import jiekou.MyPresenter;import model.Model;import view.MainActivity;/** * Created by 爱新觉罗璎汉 on 2017/12/20. */public class Presenter implements MyPresenter{    MainActivity mainActivity;    public Presenter(MainActivity mainActivity) {        this.mainActivity = mainActivity;    }    public void getViewUrl(String url){        Model model = new Model(this);        model.getPresenterUrl(url);    }    @Override    public void getModelJson(String json) {        mainActivity.getPRESENTERJson(json);    }}
M层

package model;import java.io.IOException;import jiekou.MyModel;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;import presenter.Presenter;import util.OkHttp3Utils;/** * Created by 爱新觉罗璎汉 on 2017/12/20. */public class Model implements MyModel {    Presenter presenter;    public Model(Presenter presenter) {        this.presenter = presenter;    }    @Override    public void getPresenterUrl(String url) {        OkHttp3Utils.doGet(url, new Callback() {            @Override            public void onFailure(Call call, IOException e) {            }            @Override            public void onResponse(Call call, Response response) throws IOException {                if(response.isSuccessful()){                    String string = response.body().string();                    presenter.getModelJson(string);                }            }        });    }}
M层接口

public interface MyModel {    void getPresenterUrl(String url);}

P层接口

public interface MyPresenter {    void getModelJson(String json);}
V层接口

public interface MyView {    void getPRESENTERJson(String json);}



原创粉丝点击