MVp

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
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值