XBanner+RecyclerView多条目

效果图

在这里插入图片描述

vew
package com.bawei.mvp.view;

/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:47
 */
public interface MainView {
    void sueccss(int type,String data);
    void fail(int type,String error);

}

model
package com.bawei.mvp.model;

/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:50
 */
public interface MainModel {
    interface CallBackLister{
        void sueccss(int type,String data);
        void fail(int type,String error);

    }
    void doBaner(int type,String url,CallBackLister callBackLister);
    void doData(int type,String url,CallBackLister callBackLister);

}

package com.bawei.mvp.model;

import com.bawei.mvp.utils.OkHttpUtils;

/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:52
 */
public class MainModelIml implements MainModel {
    @Override
    public void doBaner(final int type, String url, final CallBackLister callBackLister) {
        new OkHttpUtils().get(url).result(new OkHttpUtils.HttpListener() {
            @Override
            public void sueccss(String data) {
                callBackLister.sueccss(type,data);
            }

            @Override
            public void fail(String error) {
                callBackLister.fail(type,error);
            }
        });

    }

    @Override
    public void doData(final int type, String url, final CallBackLister callBackLister) {
        new OkHttpUtils().get(url).result(new OkHttpUtils.HttpListener() {
            @Override
            public void sueccss(String data) {
                callBackLister.sueccss(type,data);
            }

            @Override
            public void fail(String error) {
                callBackLister.fail(type,error);
            }
        });
    }
}

presenter
package com.bawei.mvp.presenter;

import com.bawei.mvp.model.MainModel;

/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:53
 */
public interface MainPresenter {
    void doBaner(int type,String url);
    void doData(int type,String url);
}

package com.bawei.mvp.presenter;

import com.bawei.mvp.model.MainModel;
import com.bawei.mvp.view.MainView;

/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:54
 */
public class MainPresenterIml implements MainPresenter, MainModel.CallBackLister {
   private MainModel mainModel;
    private MainView mainView;
    public MainPresenterIml(MainModel mainModel, MainView mainView){
        this.mainModel=mainModel;
        this.mainView=mainView;
    }
    @Override
    public void doBaner(int type, String url) {
        mainModel.doBaner(type,url,this);
    }

    @Override
    public void doData(int type, String url) {
        mainModel.doData(type,url,this);
    }

    @Override
    public void sueccss(int type, String data) {
        mainView.sueccss(type,data);

    }

    @Override
    public void fail(int type, String error) {
        mainView.fail(type,error);

    }
    public  void destroy(){
        if (mainView!=null){
            mainView=null;
        }
        if (mainModel!=null){
            mainModel=null;
        }
        System.gc();
    }
}

utils
package com.bawei.mvp.utils;

import android.os.Handler;
import android.os.Message;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 10:04
 */
public class OkHttpUtils {
     int HTTP_SUECCSS=200;
     int HTTP_FAIL=201;
    private HttpListener httpListener;

    public  OkHttpUtils get(String url){
         doHttp(url,0,null);
         return this;
     }
    public  OkHttpUtils post(String url,int type, FormBody.Builder bodyBuilder){
        doHttp(url,1,bodyBuilder);
        return this;
    }

    private void doHttp(String url,int type,FormBody.Builder bodyBuilder) {
        //拦截器
        OkHttpClient client=new OkHttpClient.Builder().addInterceptor(new Interceptor() {
            @Override
            public Response intercept(Chain chain) throws IOException {
                Request request=chain.request();

                return chain.proceed(request);
            }
        }).build();
        Request.Builder builder=new Request.Builder();
        if (type==0){
        builder.get();
        }else {
            builder.post(bodyBuilder.build());
        }
    builder.url(url);
        Request  request=builder.build();
        final Message message=new Message();
        client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                message.obj=e.getMessage();
                message.what=HTTP_FAIL;
                handler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                message.obj=response.body().string();
                message.what=HTTP_SUECCSS;
                handler.sendMessage(message);
            }
        });
    }
    private Handler handler=new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if (msg.what==HTTP_SUECCSS){
           String data= (String) msg.obj;
                httpListener.sueccss(data);
            }else {
                String error= (String) msg.obj;
                httpListener.fail(error);
            }
        }
    };
    //接口回调的方法
     public  void result(HttpListener httpListener){
         this.httpListener=httpListener;

     }
     //接口
     public  interface  HttpListener{
         void sueccss(String data);
         void fail(String error);
     }
}

bean
package com.bawei.mvp.bean;

import com.stx.xhb.xbanner.entity.SimpleBannerInfo;

import java.util.List;
/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:54
 */

public class BannerBean implements BaseBean{

    /**
     * result : [{"imageUrl":"http://172.17.8.100/images/small/banner/cj.png","jumpUrl":"http://172.17.8.100/htm/lottery/index.html","rank":5,"title":"抽奖"},{"imageUrl":"http://172.17.8.100/images/small/banner/hzp.png","jumpUrl":"wd://commodity_list?arg=1001007005","rank":5,"title":"美妆工具"},{"imageUrl":"http://172.17.8.100/images/small/banner/lyq.png","jumpUrl":"wd://commodity_info?arg=83","rank":5,"title":"连衣裙"},{"imageUrl":"http://172.17.8.100/images/small/banner/px.png","jumpUrl":"wd://commodity_info?arg=165","rank":5,"title":"跑鞋"},{"imageUrl":"http://172.17.8.100/images/small/banner/wy.png","jumpUrl":"wd://commodity_list?arg=1001002004","rank":5,"title":"卫衣"}]
     * message : 查询成功
     * status : 0000
     */

    private String message;
    private String status;
    private List<ResultBean> result;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public List<ResultBean> getResult() {
        return result;
    }

    public void setResult(List<ResultBean> result) {
        this.result = result;
    }

    public static class ResultBean extends SimpleBannerInfo {
        /**
         * imageUrl : http://172.17.8.100/images/small/banner/cj.png
         * jumpUrl : http://172.17.8.100/htm/lottery/index.html
         * rank : 5
         * title : 抽奖
         */

        private String imageUrl;
        private String jumpUrl;
        private int rank;
        private String title;

        public String getImageUrl() {
            return imageUrl;
        }

        public void setImageUrl(String imageUrl) {
            this.imageUrl = imageUrl;
        }

        public String getJumpUrl() {
            return jumpUrl;
        }

        public void setJumpUrl(String jumpUrl) {
            this.jumpUrl = jumpUrl;
        }

        public int getRank() {
            return rank;
        }

        public void setRank(int rank) {
            this.rank = rank;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        @Override
        public Object getXBannerUrl() {
            return null;
        }
    }
}

package com.bawei.mvp.bean;
/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:54
 */

public interface BaseBean {
}

package com.bawei.mvp.bean;

import java.util.List;
/**
 * 作者:$yangxiangrong
 * <p>
 * 2019/4/1 18:54
 */

public class HomeListBean {

    /**
     * result : {"rxxp":{"commodityList":[{"commodityId":5,"commodityName":"双头两用修容笔","masterPic":"http://17
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值