这是view层的
public class MainActivity extends AppCompatActivity implements Contexts.viewprsenter {
RecyclerView recyclerView;
MyAdapter adapter;
List<News.ResultBean.RxxpBean.CommodityListBean> list = new ArrayList<>();
//获取P层的
Contexts.PresenterFase presenterFase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
recyclerView = findViewById(R.id.main_recycler);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
//创建适配器
adapter = new MyAdapter(list, this);
recyclerView.setAdapter(adapter);
presenterFase = new Mypresenter(this);
presenterFase.toModle();
}
@Override
public void refreDisply(List<News.ResultBean.RxxpBean.CommodityListBean> list) {
this.list.addAll(list);
//刷新适配器
adapter.notifyDataSetChanged();
}
@Override
protected void onDestroy() {
super.onDestroy();
presenterFase.onDestroy();
presenterFase = null;
}
}
这是Model
public class MyModel implements Contexts.MymodelFase {
List<News.ResultBean.RxxpBean.CommodityListBean> list;
MyCallBack myCallBack;
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
int type = msg.arg1;
switch (type){
case 1:
String json = (String) msg.obj;
Log.e(“tag”,json);
Gson gson = new Gson();
News news = gson.fromJson(json, News.class);
myCallBack.success(news);
break;
}
}
};
@Override
public void onRequest(String url, Map<String, String> map, int type,MyCallBack myCallBack) {
this.myCallBack = myCallBack;
OkhttpUtile.getinter().doGet(url, map, handler, type);
}
//创建接口
public interface MyCallBack{
public void success(Object obj);
}
}
这儿是p层
public class Mypresenter implements Contexts.PresenterFase {
//获取Model层的对象
Contexts.MymodelFase mymodelFase;
//获去V层的
Contexts.viewprsenter viewprsenter;
public Mypresenter(Contexts.viewprsenter viewprsenter) {
mymodelFase = new MyModel();
this.viewprsenter = viewprsenter;
}
@Override
public void toModle() {
mymodelFase.onRequest("http://172.17.8.100/small/commodity/v1/commodityList", null, 1, new MyModel.MyCallBack() {
@Override
public void success(Object obj) {
if (obj instanceof News){
News news = (News) obj;
viewprsenter.refreDisply(news.getResult().getRxxp().getCommodityList());
}
}
});
}
@Override
public void onDestroy() {
viewprsenter = null;
}
}
这是Util
public class OkhttpUtile {
OkHttpClient okHttpClient;
public static OkhttpUtile okhttpUtile;
private OkhttpUtile(){
okHttpClient = new OkHttpClient();
okHttpClient.newBuilder().addInterceptor(new MyInterceptor()).build();
}
public static synchronized OkhttpUtile getinter(){
if (okhttpUtile == null){
okhttpUtile = new OkhttpUtile();
}
return okhttpUtile;
}
public void doGet(String url , Map<String ,String>map , final Handler mh , final int type){
if (map != null && map.size()>0){
String str = "";
StringBuilder builder = new StringBuilder();
for(String key : map.keySet()){
String pkey = key;
String value = map.get(pkey);
builder.append(pkey).append("=").append(value).append("&");
}
str = builder.toString();
int index = str.lastIndexOf("&");
str = str.substring(0,index);
url = url+"?"+str;
}
Request request = new Request.Builder().get().url(url).build();
Call call = okHttpClient.newCall(request);
//异步请求数据
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String json = response.body().string();
Message message = new Message();
message.arg1 = type;
message.obj = json;
mh.sendMessage(message);
}
});
}
//创建一个接口类
public class MyInterceptor implements Interceptor{
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Response response = chain.proceed(request);
return response;
}
}
}
//这是contentx
public interface Contexts {
//创建view层的接口
public interface viewprsenter{
public void refreDisply(List<News.ResultBean.RxxpBean.CommodityListBean> list);
}
public interface PresenterFase{
//去Model请求数据的方
public void toModle();
public void onDestroy();
}
//创建M层的方法
public interface MymodelFase{
public void onRequest(String url , Map<String , String>map , int type, MyModel.MyCallBack myCallBack);
}
}