1、model
interface:
public interface ModelInter {
void getData(String url);
void getList(String url);
}
class:
public class ModelBase implements ModelInter{
private final ModelInterface modelInterface;
public ModelBase(ModelInterface modelInterface) {
this.modelInterface =modelInterface;
}
@Override
public void getData(String url) {
OkHttp3.OkHttpGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
modelInterface.failed();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
modelInterface.successful(response.body().string());
}
});
}
@Override
public void getList(String url) {
OkHttp3.OkHttpGet(url, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
modelInterface.successful(response.body().string());
}
});
}
public interface ModelInterface{
void successful(String viewdata);
void failed();
}
}
2、presenter
interface:
public interface PresenterInter {
void getModel();
void getList();
}
class:
package com.example.bw.week2.home.presenter;
import android.util.Log;
import com.example.bw.week2.frag.FirstFragment;
import com.example.bw.week2.home.model.ModelBase;
import com.example.bw.week2.utils.Api;
public class PresenterBase implements PresenterInter,ModelBase.ModelInterface {
private FirstFragment firstFragment;
private ModelBase modelBase;
public PresenterBase(FirstFragment firstFragment) {
this.firstFragment =firstFragment;
modelBase = new ModelBase(this);
}
@Override
public void getModel() {
modelBase.getData(Api.shopList);
}
@Override
public void getList() {
modelBase.getList(Api.List);
}
@Override
public void successful(String viewdata) {
Log.i("dfd",""+viewdata);
firstFragment.getMviewdata(viewdata);
firstFragment.getListview(viewdata);
}
@Override
public void failed() {
}
public void destory(){
if (firstFragment!=null){
firstFragment=null;
}
}
}
3、view
interface:
public interface ViewInter {
void getMviewdata(String mviewData);
void getListview(String viewda);
}
六、工具类
1、OKHttp的get请求以及拦截器
注意:不要忘记到依赖哦!
( implementation 'com.squareup.okhttp3:okhttp:3.7.0'
implementation 'com.squareup.okio:okio:1.12.0')
package com.example.bw.week2.utils;
import android.os.Environment;
import android.util.Log;
import java.io.File;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import okhttp3.Cache;
import okhttp3.Callback;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class OkHttp3 {
private static Request get;
private static OkHttpClient okHttpClient;
private static RequestBody build;
//拦截器
// private Interceptor getAppInterceptor(){
// Interceptor interceptor = new Interceptor() {
// @Override
// public Response intercept(Chain chain) throws IOException {
// Request request = chain.request();
// Log.i("++++++","拦截前");
// Response proceed = chain.proceed(request);
// Log.i("+++++","拦截后");
// return proceed;
// }
// };
// return interceptor;
// }
// private OkHttp3(){
// File file = new File(Environment.getExternalStorageDirectory(), "cachell");
// client = new OkHttpClient().newBuilder()
// .readTimeout(3000, TimeUnit.SECONDS)
// .connectTimeout(3000, TimeUnit.SECONDS)
// //拦截器
// .addInterceptor(getAppInterceptor())
// .cache(new Cache(file, 10 * 1024))
// .build();
// }
//okhttp get的异步请求方法
public static void OKHttpget(String url, final setData data){
//创建okHttpClient
okHttpClient = new OkHttpClient();
//创建reuest
get = new Request.Builder()
.url(url)
.method("GET", null)
.build();
//
okHttpClient.newCall(get).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();
Log.i("数据:", "onResponse: ===="+string);
data.getData(string);
}
});
}
public interface setData{
void getData(String data);
}
}
2、Api
public class Api {
// public final static String ShopList="http://www.zhaoapi.cn/product/getCatagory";
public final static String shopList="http://www.zhaoapi.cn/product/getCatagory";
public final static String List="http://www.zhaoapi.cn/product/getProductCatagory";
// http://www.zhaoapi.cn/product/getProductCatagory
}
注意:不要忘记写Bean类,TopBar中的Activity属于工具类哦!
---------------------
作者:Cll浩
来源:CSDN
原文:https://blog.csdn.net/weixin_42630640/article/details/85945153
版权声明:本文为博主原创文章,转载请附上博文链接!