Activity
private HomePresenter homePresenter;
private String path = "http://result.eolinker.com/iYXEPGn4e9c6dafce6e5cdd23287d2bb136ee7e9194d3e9?uri=one";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initData();
}
private void initView() {
}
private void initData() {
homePresenter = new HomePresenter();
homePresenter.setView(this);
homePresenter.ShowData(path);
}
@Override
public void onSuccess(NewsBean data) {
}
@Override
public void onErr(String err) {
}
@Override
protected void onDestroy() {
super.onDestroy();
homePresenter.dettachView();
}
P层
private HttpUtils httpUtils;
public HomePresenter(){
httpUtils = HttpUtils.getInstance();
httpUtils.setCallBackInstance(new HttpUtils.CallBackData<NewsBean>() {
@Override
public void onResponse(NewsBean t) {
getView().onSuccess(t);
}
@Override
public void onFailure(IOException e) {
}
});
}
public void ShowData(String url){
httpUtils.getPost(url);
}
OkHttp页面
private static HttpUtils httpUtils;
CallBackData callBackData;
public HttpUtils() {
}
;
public void setCallBackInstance(CallBackData callBackInstance) {
this.callBackData = callBackInstance;
}
public static HttpUtils getInstance() {
if (httpUtils == null) {
return new HttpUtils();
} else {
return httpUtils;
}
}
public void getPost(String url) {
OkHttpClient okHttpClient = new OkHttpClient.Builder().build();
FormBody frombody = new FormBody.Builder().build();
final Request request = new Request.Builder().url(url).build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
callBackData.onFailure(e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String string = response.body().string();
Gson gson = new Gson();
NewsBean newsBean = gson.fromJson(string, NewsBean.class);
Message message = handler.obtainMessage();
message.obj = newsBean;
handler.sendMessage(message);
}
});
}
public interface CallBackData<D> {
void onResponse(D t);
void onFailure(IOException e);
}
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
Object obj = msg.obj;
callBackData.onResponse(obj);
}
};
IMianView
public interface IMainView extends IBaseView{
void onSuccess(NewsBean bean);
void onErr(String err);
}