ViewInfjava
package com.example.yuekao1.view; import com.example.yuekao1.bean.MyBean; import java.util.List; public interface ViewInf { public void updateUI(List<MyBean.DataBean.DatasBean> list); }
ModelInfandroid
package com.example.yuekao1.model; import android.support.v7.app.AppCompatActivity; import java.util.List; public interface ModelInf { public void getData(AppCompatActivity activity,String url, CallBackListener listener); }
CallBackListenerapp
package com.example.yuekao1.model; import com.example.yuekao1.bean.MyBean; import java.util.List; public interface CallBackListener { public void takeDatafromPresenter(List<MyBean.DataBean.DatasBean> list); }
Modelide
package com.example.yuekao1.model; import android.support.v7.app.AppCompatActivity; import com.example.yuekao1.bean.MyBean; import com.google.gson.Gson; import java.io.IOException; import java.util.List; import okhttp3.Call; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by 郝悅 on 2017/11/11. */ public class Model implements ModelInf { @Override public void getData(final AppCompatActivity activity, String url, final CallBackListener listener) { OkHttpClient ohc = new OkHttpClient(); Request build = new Request.Builder().url(url).build(); ohc.newCall(build).enqueue(new Callback() { private List<MyBean.DataBean.DatasBean> datas; @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { final String string = response.body().string(); activity.runOnUiThread(new Runnable() { @Override public void run() { Gson gson = new Gson(); MyBean myBean = gson.fromJson(string, MyBean.class); datas = myBean.getData().getDatas(); listener.takeDatafromPresenter(datas); } }); } }); } }
PresenterInfui
package com.example.yuekao1.presenter; import android.support.v7.app.AppCompatActivity; import java.util.List; /** * Created by 郝悅 on 2017/11/11. */ public interface PresenterInf { public void setUrl(AppCompatActivity activity,String url); }
Presenterthis
package com.example.yuekao1.presenter; import android.support.v7.app.AppCompatActivity; import com.example.yuekao1.model.CallBackListener; import com.example.yuekao1.model.Model; import com.example.yuekao1.model.ModelInf; import com.example.yuekao1.view.ViewInf; import java.util.List; public class Presenter implements PresenterInf,CallBackListener { private ViewInf viewInf; private ModelInf modelInf; public Presenter(ViewInf viewInf) { this.modelInf = new Model(); this.viewInf = viewInf; } @Override public void takeDatafromPresenter(List list) { viewInf.updateUI(list); } @Override public void setUrl(AppCompatActivity activity,String url) { modelInf.getData(activity,url,this); } }