MVP Ok商品列表 下拉加载 上拉刷新

MainActivity

public class MainActivity extends AppCompatActivity implements IMainView{
    private static final String TAG = "MainActivity=====";
    private int page=1;
    private XListView xlistView;
    private List<GoodsListBean.DataBean> list;
    private MyAdapter myAdapter;
    private PresenterImp presenter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initViews();
        initDatas();
    }
    private void initDatas(){
        presenter = new PresenterImp();
        presenter.showGoodsListToView(new GoodsListImp(),this);
    }
    private void initViews() {

       xlistView= (XListView)findViewById(R.id.xlistview);
        Log.d(TAG, "initViews: "+xlistView);
        xlistView.setPullLoadEnable(true);
        xlistView.setPullRefreshEnable(true);
        xlistView.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
                page=1;
                presenter.showGoodsListToViewFresh(new GoodsListImp(),MainActivity.this);

            }

            @Override
            public void onLoadMore() {
                page++;
                presenter.showGoodsListToViewLoadMore(new GoodsListImp(),MainActivity.this);

            }
        });
    }



    @Override
    public void showGoodsList(List<GoodsListBean.DataBean> list) {
        this.list=list;
       myAdapter = new MyAdapter(this,this.list);
        xlistView.setAdapter(myAdapter);
    }

    @Override
    public void showGoodsListFresh(List<GoodsListBean.DataBean> list) {
        this.list=list;
        myAdapter.notifyDataSetChanged();
        xlistView.stopRefresh();

    }

    @Override
    public void showGoodsListLoadMore(List<GoodsListBean.DataBean> list) {
        this.list.addAll(list);


        myAdapter.notifyDataSetChanged();

        xlistView.stopLoadMore();
    }

    @Override
    public int getPage() {
        return page;
    }

}



IMainView  接口
public interface IMainView {
    void showGoodsList(List<GoodsListBean.DataBean> list);
    //刷新
    void showGoodsListFresh(List<GoodsListBean.DataBean> list);
    //加载更多
    void showGoodsListLoadMore(List<GoodsListBean.DataBean> list);
    //获取页数
    int getPage();
}

http包 httpUtils类

public class httpUtils {
    private static httpUtils httpUtil;
    private final int SUCCESS=0;
    private final int ERROR=1;
    private MyHandler myHandler=new MyHandler();
    private OkLoadListener okLoadListener;
    public static httpUtils getHttpUtil(){
        if (httpUtil==null){
            httpUtil=new httpUtils();
        }
        return httpUtil;
    }
    class MyHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case SUCCESS:
                    String json = (String) msg.obj;
                    okLoadListener.okLoadSuccess(json);
                    break;
                case ERROR:
                    String error = (String) msg.obj;
                    okLoadListener.okLoadError(error);
                    break;
            }
        }
    }
    public void okGet(String url){
        OkHttpClient client = new OkHttpClient();
        Request build = new Request.Builder().url(url).build();
        Call call = client.newCall(build);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message message = myHandler.obtainMessage();
                message.what=ERROR;
                message.obj=e.getMessage();
                myHandler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Message message = myHandler.obtainMessage();
                message.what=SUCCESS;
                message.obj=response.body().string();
                myHandler.sendMessage(message);
            }
        });

    }
    public void setOkLoadListener(OkLoadListener okLoadListener){
        this.okLoadListener=okLoadListener;
    }
    public void okPost(String url,Map<String,String> params){
        OkHttpClient okHttpClient=new OkHttpClient();
        FormBody.Builder fbBuilder=new FormBody.Builder();
        Set<String> keySet=params.keySet();

        for (String key:keySet){
            String value = params.get(key);
            fbBuilder.add(key,value);
        }
        FormBody build1 = fbBuilder.build();


        Request build = new Request.Builder().url(url).post(build1).build();
        Call call = okHttpClient.newCall(build);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message message = myHandler.obtainMessage();
                message.what=ERROR;
                message.obj=e.getMessage();
                myHandler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Message message = myHandler.obtainMessage();
                message.what=SUCCESS;
                message.obj=response.body().string();
                myHandler.sendMessage(message);
            }
        });

    }
}
utils包 
httpUtils类
public class httpUtils {
    private static httpUtils httpUtil;
    private final int SUCCESS=0;
    private final int ERROR=1;
    private MyHandler myHandler=new MyHandler();
    private OkLoadListener okLoadListener;
    public static httpUtils getHttpUtil(){
        if (httpUtil==null){
            httpUtil=new httpUtils();
        }
        return httpUtil;
    }
    class MyHandler extends Handler {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what){
                case SUCCESS:
                    String json = (String) msg.obj;
                    okLoadListener.okLoadSuccess(json);
                    break;
                case ERROR:
                    String error = (String) msg.obj;
                    okLoadListener.okLoadError(error);
                    break;
            }
        }
    }
    public void okGet(String url){
        OkHttpClient client = new OkHttpClient();
        Request build = new Request.Builder().url(url).build();
        Call call = client.newCall(build);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message message = myHandler.obtainMessage();
                message.what=ERROR;
                message.obj=e.getMessage();
                myHandler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Message message = myHandler.obtainMessage();
                message.what=SUCCESS;
                message.obj=response.body().string();
                myHandler.sendMessage(message);
            }
        });

    }
    public void setOkLoadListener(OkLoadListener okLoadListener){
        this.okLoadListener=okLoadListener;
    }
    public void okPost(String url,Map<String,String> params){
        OkHttpClient okHttpClient=new OkHttpClient();
        FormBody.Builder fbBuilder=new FormBody.Builder();
        Set<String> keySet=params.keySet();

        for (String key:keySet){
            String value = params.get(key);
            fbBuilder.add(key,value);
        }
        FormBody build1 = fbBuilder.build();


        Request build = new Request.Builder().url(url).post(build1).build();
        Call call = okHttpClient.newCall(build);
        call.enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
                Message message = myHandler.obtainMessage();
                message.what=ERROR;
                message.obj=e.getMessage();
                myHandler.sendMessage(message);
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                Message message = myHandler.obtainMessage();
                message.what=SUCCESS;
                message.obj=response.body().string();
                myHandler.sendMessage(message);
            }
        });

    }
}
OkLoadListener接口
public interface OkLoadListener {
    void okLoadSuccess(String json);
    void okLoadError(String error);
}
model包 
GoodsListBean类
/**
     * msg : 请求成功
     * code : 0
     * data : [{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":1,"price":118,"pscid":1,"salenum":0,"sellerid":17,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":2,"price":299,"pscid":1,"salenum":999,"sellerid":18,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":3,"price":198,"pscid":1,"salenum":1234,"sellerid":19,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":2,"pid":4,"price":999,"pscid":1,"salenum":356,"sellerid":20,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":5,"price":88.99,"pscid":1,"salenum":678,"sellerid":21,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":6,"price":7.99,"pscid":1,"salenum":234,"sellerid":22,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":7,"price":120.01,"pscid":1,"salenum":1266,"sellerid":23,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:53:28","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":0,"pid":8,"price":324,"pscid":1,"salenum":3000,"sellerid":1,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:48:08","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":2,"pid":9,"price":78.99,"pscid":1,"salenum":2356,"sellerid":2,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:39:05","detailUrl":"https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg","itemtype":1,"pid":10,"price":555.55,"pscid":1,"salenum":0,"sellerid":3,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}]
     * page : 1
     */

    private String msg;
    private String code;
    private String page;
    private List<DataBean> data;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getPage() {
        return page;
    }

    public void setPage(String page) {
        this.page = page;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean {
        /**
         * bargainPrice : 111.99
         * createtime : 2017-10-14T21:39:05
         * detailUrl : https://item.m.jd.com/product/4719303.html?utm_source=androidapp&utm_medium=appshare&utm_campaign=t_335139774&utm_term=QQfriends
         * images : https://m.360buyimg.com/n0/jfs/t9004/210/1160833155/647627/ad6be059/59b4f4e1N9a2b1532.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7504/338/63721388/491286/f5957f53/598e95f1N7f2adb87.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t7441/10/64242474/419246/adb30a7d/598e95fbNd989ba0a.jpg!q70.jpg
         * itemtype : 1
         * pid : 1
         * price : 118.0
         * pscid : 1
         * salenum : 0
         * sellerid : 17
         * subhead : 每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下
         * title : 北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g
         */

        private double bargainPrice;
        private String createtime;
        private String detailUrl;
        private String images;
        private int itemtype;
        private int pid;
        private double price;
        private int pscid;
        private int salenum;
        private int sellerid;
        private String subhead;
        private String title;

        public double getBargainPrice() {
            return bargainPrice;
        }

        public void setBargainPrice(double bargainPrice) {
            this.bargainPrice = bargainPrice;
        }

        public String getCreatetime() {
            return createtime;
        }

        public void setCreatetime(String createtime) {
            this.createtime = createtime;
        }

        public String getDetailUrl() {
            return detailUrl;
        }

        public void setDetailUrl(String detailUrl) {
            this.detailUrl = detailUrl;
        }

        public String getImages() {
            return images;
        }

        public void setImages(String images) {
            this.images = images;
        }

        public int getItemtype() {
            return itemtype;
        }

        public void setItemtype(int itemtype) {
            this.itemtype = itemtype;
        }

        public int getPid() {
            return pid;
        }

        public void setPid(int pid) {
            this.pid = pid;
        }

        public double getPrice() {
            return price;
        }

        public void setPrice(double price) {
            this.price = price;
        }

        public int getPscid() {
            return pscid;
        }

        public void setPscid(int pscid) {
            this.pscid = pscid;
        }

        public int getSalenum() {
            return salenum;
        }

        public void setSalenum(int salenum) {
            this.salenum = salenum;
        }

        public int getSellerid() {
            return sellerid;
        }

        public void setSellerid(int sellerid) {
            this.sellerid = sellerid;
        }

        public String getSubhead() {
            return subhead;
        }

        public void setSubhead(String subhead) {
            this.subhead = subhead;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }
    }
}
 
GoodsListener 接口
public interface GoodsListener {

    void getGoodsListSuccess(String json);
    void getGoodsListError(String error);
}
 
 
IGoodsModel 接口
public interface IGoodsModel {

    void gerGoodsListFromNet(String url, Map<String,String> params,GoodsListener goodsListener);
    void gerGoodsListFromNetFresh(String url, Map<String,String> params,GoodsListener goodsListener);
    void gerGoodsListFromNetLoadMore(String url, Map<String,String> params,GoodsListener goodsListener);

}
 
MyAdapter 适配器
public class MyAdapter extends BaseAdapter{

    private Context context;
    private List<GoodsListBean.DataBean> list;

    public MyAdapter(Context context, List<GoodsListBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        MyViewHolder myViewHolder = null;
        if (convertView == null) {
            convertView = View.inflate(context, R.layout.layout_item, null);
            ImageView imageView = (ImageView) convertView.findViewById(R.id.item_pic);
            TextView textView = (TextView) convertView.findViewById(R.id.item_title);
            myViewHolder = new MyViewHolder(imageView, textView);
            convertView.setTag(myViewHolder);
        } else {
            myViewHolder = (MyViewHolder) convertView.getTag();
        }
        String images = list.get(position).getImages();
        String pic_url = images.split("\\|")[0];
        //加载图片
        Glide.with(context).load(pic_url).into(myViewHolder.getItem_pic());
        myViewHolder.getItem_title().setText(list.get(position).getTitle());
        return convertView;
    }
    class MyViewHolder {
        private ImageView item_pic;
        private TextView item_title;

        public MyViewHolder(ImageView item_pic, TextView item_title) {
            this.item_pic = item_pic;
            this.item_title = item_title;
        }

        public ImageView getItem_pic() {
            return item_pic;
        }

        public void setItem_pic(ImageView item_pic) {
            this.item_pic = item_pic;
        }

        public TextView getItem_title() {
            return item_title;
        }

        public void setItem_title(TextView item_title) {
            this.item_title = item_title;
        }
    }
}
GoodsListImp类
public class GoodsListImp implements IGoodsModel {

    @Override
    public void gerGoodsListFromNet(String url, Map<String, String> params, final GoodsListener goodsListener) {
        httpUtils httpUtil=httpUtils.getHttpUtil();
        httpUtil.okPost(url,params);
        httpUtil.setOkLoadListener(new OkLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                goodsListener.getGoodsListSuccess(json);
            }

            @Override
            public void okLoadError(String error) {
                goodsListener.getGoodsListError(error);
            }
        });
    }

    @Override
    public void gerGoodsListFromNetFresh(String url, Map<String, String> params, final GoodsListener goodsListener) {

        httpUtils httpUtil=httpUtils.getHttpUtil();
        httpUtil.okPost(url,params);
        httpUtil.setOkLoadListener(new OkLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                goodsListener.getGoodsListSuccess(json);
            }

            @Override
            public void okLoadError(String error) {
                goodsListener.getGoodsListError(error);
            }
        });
    }

    @Override
    public void gerGoodsListFromNetLoadMore(String url, Map<String, String> params, final GoodsListener goodsListener) {

        httpUtils httpUtil=httpUtils.getHttpUtil();
        httpUtil.okPost(url,params);
        httpUtil.setOkLoadListener(new OkLoadListener() {
            @Override
            public void okLoadSuccess(String json) {
                goodsListener.getGoodsListSuccess(json);
            }

            @Override
            public void okLoadError(String error) {
                goodsListener.getGoodsListError(error);
            }
        });
    }

}
presenter包
IPresenter接口
public interface IPresenter {
    void showGoodsListToView(IGoodsModel iGoodsModel, IMainView iMainView);
    void showGoodsListToViewFresh(IGoodsModel iGoodsModel, IMainView iMainView);
    void showGoodsListToViewLoadMore(IGoodsModel iGoodsModel, IMainView iMainView);
}
 
 
PresenterImp 类
public class PresenterImp implements IPresenter{

    private String url="https://www.zhaoapi.cn/product/getProducts";

    @Override
    public void showGoodsListToView(IGoodsModel iGoodsModel, final IMainView iMainView) {
        Map<String,String> params=new HashMap<>();
        params.put("pscid","1");
        iGoodsModel.gerGoodsListFromNet(url, params, new GoodsListener() {
            @Override
            public void getGoodsListSuccess(String json) {
                Gson gson=new Gson();
                GoodsListBean goodsListBean=gson.fromJson(json,GoodsListBean.class);
                List<GoodsListBean.DataBean> beanList=goodsListBean.getData();
                iMainView.showGoodsList(beanList);
            }

            @Override
            public void getGoodsListError(String error) {

        }
        });
    }

    @Override
    public void showGoodsListToViewFresh(IGoodsModel iGoodsModel, final IMainView iMainView) {
        Map<String,String> params=new HashMap<>();
        params.put("pscid","1");
        params.put("page","1");
        iGoodsModel.gerGoodsListFromNet(url, params, new GoodsListener() {
            @Override
            public void getGoodsListSuccess(String json) {
                Gson gson=new Gson();
                GoodsListBean goodsListBean=gson.fromJson(json,GoodsListBean.class);
                List<GoodsListBean.DataBean> beanList=goodsListBean.getData();
                iMainView.showGoodsListFresh(beanList);
            }

            @Override
            public void getGoodsListError(String error) {

            }
        });
    }

    @Override
    public void showGoodsListToViewLoadMore(IGoodsModel iGoodsModel, final IMainView iMainView) {
        Map<String,String> params=new HashMap<>();
        params.put("pscid","1");
        params.put("page",iMainView.getPage()+"");
        iGoodsModel.gerGoodsListFromNet(url, params, new GoodsListener() {
            @Override
            public void getGoodsListSuccess(String json) {
                Gson gson=new Gson();
                GoodsListBean goodsListBean=gson.fromJson(json,GoodsListBean.class);
                List<GoodsListBean.DataBean> beanList=goodsListBean.getData();
                iMainView.showGoodsListLoadMore(beanList);
            }

            @Override
            public void getGoodsListError(String error) {

            }
        });
    }
}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值