Dao

1.RetorFitUtil

 //声明
    private static RetorFitUtil retorFitUtil;
    public Retrofit retrofit;


    //网络判断
    public static boolean isNABoolean(Context context){
        //判断参数是否为空
        if (context!=null){
            //获取连接管理器
            ConnectivityManager connectivityManager = (ConnectivityManager)
                    context.getSystemService(Context.CONNECTIVITY_SERVICE);
            //获取网络状态
            NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();

            //判断网络是  否可用
            if (activeNetworkInfo!=null){
                return activeNetworkInfo.isConnected();
            }
        }
        return false;
    }

    //拦截器
    HttpLoggingInterceptor loggingInterceptor = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
        @Override
        public void log(String message) {
            Log.i("tab","tab=="+message);
        }
    });
    OkHttpClient client = new OkHttpClient().newBuilder()
            //拦截器
            .addInterceptor(loggingInterceptor)
            //出现错误重新连接
            .retryOnConnectionFailure(true)
            .build();

    //构造方法私有化
    private RetorFitUtil(){
         retrofit = new Retrofit.Builder()
                 .baseUrl(Url.HE)
                 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
                 .addConverterFactory(GsonConverterFactory.create())
                 .build();
    }

    //单利
    public static synchronized RetorFitUtil getInRetorFitUtil(){
        if (retorFitUtil==null){
            retorFitUtil = new RetorFitUtil();
        }
        return retorFitUtil;
    }

    public <T>T setRetrofit(String url,Class<T> tClass){
        return retrofit.create(tClass);
    }

2.Api

@GET
    public Observable<ResponseBody> getBennt(@Url String url);

3.URL

 //http://172.17.8.100/small/commodity/v1/commodityList
    public static String BASEURL="http://172.17.8.100/";
    public static String URL="small/commodity/";
    public static String HE = BASEURL+URL;

4.M

 public MyCallBack myCallBack;
    public MyCallBack myCallBack2;

    public void requestData(){
        RetorFitUtil retorFitUtil = RetorFitUtil.getInRetorFitUtil();
        Api api = retorFitUtil.setRetrofit(Url.HE,Api.class);
        String surl="v1/commodityList";

        api.getBennt(surl)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Action1<ResponseBody>() {
                    @Override
                    public void call(ResponseBody responseBody) {
                        try {
                            String string = responseBody.string();
                            Gson gson = new Gson();
                            JsonBean2 jsonBean2 = gson.fromJson(string, JsonBean2.class);
                            myCallBack.succer(jsonBean2);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                });
    }


    public void getBanner(){

        RetorFitUtil inRetorFitUtil = RetorFitUtil.getInRetorFitUtil();
        Api api = inRetorFitUtil.setRetrofit(Url.HE2, Api.class);
        String burl = "v1/bannerShow";
        api.getBennt(burl)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Action1<ResponseBody>() {
                    @Override
                    public void call(ResponseBody responseBody) {
                        try {
                            String string = responseBody.string();
                            Gson gson = new Gson();
                            BannerBean bannerBean = gson.fromJson(string, BannerBean.class);
                            myCallBack2.succer(bannerBean);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }

                    }
                });

    }

    public void setMyModel(int type, MyCallBack myCallBack) {
        if (type==1){
            this.myCallBack = myCallBack;
        }else{
            this.myCallBack2 = myCallBack;
        }

    }

    //内部接口
    public interface MyCallBack{
        public void succer(Object object);
    }

5.P

 public MyModel myModel;
    public T tt;

    public MyPesnter(T tt) {
        myModel = new MyModel();
        this.tt = tt;
    }

    @Override
    public void onShu() {
        myModel.setMyModel(1,new MyModel.MyCallBack() {
            @Override
            public void succer(Object object) {
                ((ContantInterface.VInterface)tt).shouZhan(object);
            }
        });
        myModel.requestData();
    }

    @Override
    public void onBanner(String url) {
        myModel.setMyModel(2,new MyModel.MyCallBack() {
            @Override
            public void succer(Object object) {
                BannerBean bannerBean = (BannerBean)object;
                List<BannerBean.ResultBean> result = bannerBean.getResult();
                ((ContantInterface.VInterface)tt).shouBanner(result);
            }
        });
        myModel.getBanner();
    }

    @Override
    public void onDsply() {
         if (tt!=null){
             tt=null;
         }
    }

6.V

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        init();
    }

    private void init() {

        btbar.init(getSupportFragmentManager())
                .setImgSize(30,30)
                .setFontSize(30)
                .setTabPadding(0,0,0)
                .addTabItem("Text1",R.mipmap.ic_launcher,FragOne.class)
                .addTabItem("Text2",R.mipmap.ic_launcher_round,FragTwo.class)
                ;
    }

7.V

 View view = inflater.inflate(R.layout.frag_one, container, false);

        unbinder = ButterKnife.bind(this, view);
        pInterface = new MyPesnter(this);
        //网络判断
        boolean naBoolean = RetorFitUtil.isNABoolean(getActivity());
        if(naBoolean){
            pInterface.onShu();
            pInterface.onBanner(null);
        }else{
            Toast.makeText(getActivity(),"无网络",Toast.LENGTH_LONG).show();
        }

        init();
        init2();
        init3();

        return view;
    }

    @Override
    public void onDestroyView() {
        super.onDestroyView();
        unbinder.unbind();
    }

    //热销新品
    private void init() {
        //布局管理器
        LinearLayoutManager linear = new LinearLayoutManager(getActivity());
        linear.setOrientation(LinearLayoutManager.HORIZONTAL);
        rec.setLayoutManager(linear);

        //适配器
        recAdater = new RecAdater(list1, getActivity());
        rec.setAdapter(recAdater);
    }

    //魔力时尚
    private void init2() {
        //布局管理器
        LinearLayoutManager linear = new LinearLayoutManager(getActivity());
        linear.setOrientation(LinearLayoutManager.VERTICAL);
        rec2.setLayoutManager(linear);

        //适配器
        recAdater2 = new Rec2Adater(list2, getActivity());
        rec2.setAdapter(recAdater2);
    }

    //品质生活
    private void init3() {
        //布局管理器
        StaggeredGridLayoutManager stag = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL);
        rec3.setLayoutManager(stag);

        //适配器
        recAdater3 = new Rec3Adater(list3, getActivity());
        rec3.setAdapter(recAdater3);
    }


    boolean isGoing = true;
    @Override
    public void shouZhan(Object object) {
        JsonBean2 jsonBean2 = (JsonBean2) object;
        list1.addAll(jsonBean2.getResult().getRxxp().getCommodityList());
        list2.addAll(jsonBean2.getResult().getPzsh().getCommodityList());
        list3.addAll(jsonBean2.getResult().getMlss().getCommodityList());

        //插入数据,子线程
        if (isGoing){
            isGoing = false;
            new Thread(new Runnable() {
                @Override
                public void run() {
                   setVault();
                }
            }).start();
        }
        recAdater.notifyDataSetChanged();
    }

    //插入数据
    public void setVault(){
        //添加之前,先删除之前的数据
        App.daoSession.getGouWuBeanDao().deleteAll();
        //增强for循环
        for (JsonBean2.ResultBean.RxxpBean.CommodityListBean rListBean1: list1){
            //Bean
            GouWuBean gouWuBean = new GouWuBean();
            //图片
            gouWuBean.setImage(rListBean1.getMasterPic());
            //名称
            gouWuBean.setName(rListBean1.getCommodityName());
            //价格
            gouWuBean.setPric(rListBean1.getPrice());
            //添加数据
            App.daoSession.insert(gouWuBean);
        }
    }

    //网络判断


    //查询数据

    //轮播图
    @Override
    public void shouBanner(List<BannerBean.ResultBean> blist) {
        for (int i = 0; i < blist.size(); i++) {
            banner1.add(blist.get(i).getImageUrl());
            //banner2.add(blist.get(i).getTitle());
        }
        banner.setBannerStyle(BannerConfig.CIRCLE_INDICATOR)
                .setImages(banner1)
                //.setBannerTitles(banner2)
                .setImageLoader(new Image())
                .isAutoPlay(true)
                .start();
    }

    //轮播图
    public class Image extends ImageLoader {

        @Override
        public void displayImage(Context context, Object path, ImageView imageView) {
            //加载图片
            imageView.setImageURI(Uri.parse((String) path));
            //圆角
            GenericDraweeHierarchy gene = GenericDraweeHierarchyBuilder
                    .newInstance(getResources())
                    //圆角半径
                    .setRoundingParams(RoundingParams.fromCornersRadius(20))
                    .build();
            simp.setHierarchy(gene);
        }

        @Override
        public ImageView createImageView(Context context) {
            simp = new SimpleDraweeView(context);
            return simp;
        }
    }


    @Override
    public void onDestroy() {
        super.onDestroy();
        pInterface.onDsply();
        pInterface = null;
    }

8.App

 public static DaoSession daoSession;

    @Override
    public void onCreate() {
        super.onCreate();
        Tu();
        Shu();
    }

    private void Shu() {
        DaoMaster.DevOpenHelper devOpenHelper = new DaoMaster.DevOpenHelper(this,"yyy");
        SQLiteDatabase writableDatabase = devOpenHelper.getWritableDatabase();
        DaoMaster daoMaster = new DaoMaster(writableDatabase);
        daoSession = daoMaster.newSession();
    }

    private void Tu() {
        DiskCacheConfig diskCacheConfig = DiskCacheConfig.newBuilder(this)
                .setBaseDirectoryName("kkk")
                .setBaseDirectoryPath(Environment.getExternalStorageDirectory())
                .build();
        ImagePipelineConfig imagePipelineConfig = ImagePipelineConfig.newBuilder(this)
                .setMainDiskCacheConfig(diskCacheConfig)
                .build();
        //初始化
        Fresco.initialize(this,imagePipelineConfig);
    }

9.XRec

xrecId.setPullRefreshEnabled(true);
        xrecId.setLoadingMoreEnabled(true);

        //布局管理器
        LinearLayoutManager linear = new LinearLayoutManager(this);
        linear.setOrientation(LinearLayoutManager.VERTICAL);
        //衔接
        xrecId.setLayoutManager(linear);

        //适配器
        xrecAdapter = new XrecAdapter(list,MainActivity.this);
        xrecId.setAdapter(xrecAdapter);

        xrecId.setLoadingListener(new XRecyclerView.LoadingListener() {
            @Override
            public void onRefresh() {
                list.clear();
                page=1;
                pIterface.onZhan(page);
                xrecId.refreshComplete();
            }

            @Override
            public void onLoadMore() {
                page++;
                pIterface.onZhan(page);
                xrecId.loadMoreComplete();
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值