M层获取数据json
public class Model implements ModelInf { @Override public void getDate(final Handler handler) { OkHttpClient okHttpClient = OkHttpUtil.getInstance(); Request request = new Request.Builder().url("http://172.16.45.43:8080/first_page.json").build(); okHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String string = response.body().string(); handler.obtainMessage(100,string).sendToTarget(); } }); } }
M接口提供别人调用ide
public interface ModelInf { public void getDate(Handler handler); }
V获取数据 来更新UI(数据类型能够多种类型)ui
public interface ViewInf { public void upDate(List<Bean.ResultBean.DataBean> list); }
P层链接M.V桥梁this
public interface PresenterInf { public void ViewToModel(); }
public class Presenter implements PresenterInf { //建立M.V层对象 private ModelInf modelInf; private ViewInf viewInf; public Presenter(MainActivity activity) { this.modelInf = new Model(); this.viewInf = activity; } @Override public void ViewToModel() { //获取M层传递数据 modelInf.getDate(handler); } Handler handler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); String s = (String) msg.obj; Gson gson = new Gson(); Bean bean = gson.fromJson(s, Bean.class); List<Bean.ResultBean.DataBean> data = bean.getResult().getData(); //传递给V层 viewInf.upDate(data); } }; }
实现V层接口实现方法拿到数据url
MainActivity implements ViewInf对象