1.清单文件配置请求网络权限:

<!--网络请求的权限-->
<uses-permission android:name="android.permission.INTERNET"/>

2.设置依赖:1.Okhttp(网络请求); 2.RecyclerView(条目展示); 3.Glide(请求图片); 4.Gson(解析)

compile 'com.squareup.okhttp3:okhttp:3.10.0'
compile 'com.android.support:recyclerview-v7:26.1.0'
compile 'com.github.bumptech.glide:glide:3.7.0'
compile 'com.google.code.gson:gson:2.2.4'

3.Model层:1.接口;2.实现类

package com.example.myshopping.model;
import com.example.myshopping.presenter.DataPresenter;//创建接口
public interface DataModel {//定义请求数据的方法
    //参数:1.请求数据接口的url 2.P层的接口(用于将获取的数据集合传回P)
    void getData(String url, DataPresenter presenter);
}
package com.example.myshopping.model;
import com.example.myshopping.presenter.DataPresenter;
import com.example.myshopping.urils.OkhtttpUtils;
import com.google.gson.Gson;
import java.io.IOException;
import java.util.List;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;//创建接口实现类 实现接口 重写接口中定义的方法
public class MyDataModel implements DataModel{//重写请求数据的方法
    @Override
    public void getData(String url, final DataPresenter presenter) {//使用OkHttp进行请求 重写失败与成功的方法
        OkhtttpUtils.doGet(url, 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();//使用Gson解析进行解析
                Gson gson = new Gson();//得到解析后的数据
                MyData myData = gson.fromJson(json, MyData.class);//得到解析后的list集合
                List<MyData.DataBean> list = myData.getData();//调用P层的方法,将获取的数据集合传回P                presenter.Success(list);}});}
}

4. Presenter层:1.接口; 2.实现类

package com.example.myshopping.presenter;
import com.example.myshopping.model.MyData;
import java.util.List;//创建接口
public interface DataPresenter {//定义成功与失败的方法
    //参数:1.接收返回的数据集合
    void Success(List<MyData.DataBean> list);void Error();}
package com.example.myshopping.presenter;
import com.example.myshopping.model.MyData;
import com.example.myshopping.model.MyDataModel;
import com.example.myshopping.view.DataView;
import java.util.List;//创建接口实现类 实现接口 重写接口中定义的方法
public class MyDataPresenter implements DataPresenter{//3.创建构建器 把V层传入到P    DataView dataView;private final MyDataModel model;public MyDataPresenter(DataView dataView) {this.dataView=dataView;//4.实例化M        model = new MyDataModel();}//成功 接收从M层传来的集合数据
    @Override
    public void Success(List<MyData.DataBean> list) {//5.调用V层接收数据的方法 把list集合传回m            dataView.toBackHome(list);}//失败
    @Override
    public void Error() {}//1.定义接收数据接口url的方法
    public void netWrok(String url){//6.调用m层请求数据的方法,将接口urlp层传到M        model.getData(url,this);}
}

5. View层:1.接口; 2.实现类

package com.example.myshopping.view;
import com.example.myshopping.model.MyData;
import java.util.List;//创建接口
public interface DataView {//定义接收数据的方法
    void toBackHome(List<MyData.DataBean> list);
}
package com.example.myshopping.view;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.example.myshopping.R;
import com.example.myshopping.adapter.MyAdapter;
import com.example.myshopping.model.MyData;
import com.example.myshopping.presenter.MyDataPresenter;
import java.util.List;public class MainActivity extends AppCompatActivity implements DataView{private ImageView my_icon;private RecyclerView my_rcy;private CheckBox my_cb;private TextView my_zj;private TextView my_js;int i=0;//用于判断图片的切换

    //请求数据的接口
    String url = "https://www.zhaoapi.cn/product/getProducts?pscid=1";//创建Handler
    Handler handler = new Handler(){@Override
        public void handleMessage(Message msg) {super.handleMessage(msg);//获取msg传来的数据 需强转
            List<MyData.DataBean> list = (List<MyData.DataBean>) msg.obj;//设置适配器 将MainActivity和集合传给适配器
            MyAdapter myAdapter = new MyAdapter(MainActivity.this,list);//将适配器设置到my_rcy            my_rcy.setAdapter(myAdapter);}};@Override
    protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到资源控件的ID
        my_icon = findViewById(R.id.my_icon);//图片
        my_rcy = findViewById(R.id.my_rcy);//布局
        my_cb = findViewById(R.id.my_cb);//全选
        my_zj = findViewById(R.id.my_zj);//总价
        my_js = findViewById(R.id.my_js);//件数

        //设置线性布局管理器  (工程一加载时,默认显示线性布局)
        my_rcy.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));//给图片设置点击事件 实现点击图片时切换线性与表格布局
        my_icon.setOnClickListener(new View.OnClickListener() {@Override
            public void onClick(View view) {i++;//进行判断 当i%2==0时则显示线性布局,否则显示表格布局
                if(i%2==0){//设置线性布局管理器
                    my_rcy.setLayoutManager(new LinearLayoutManager(MainActivity.this,LinearLayoutManager.VERTICAL,false));}else{//设置表格布局管理器
                    my_rcy.setLayoutManager(new GridLayoutManager(MainActivity.this,2));}}});//2.1实例化p层 将MainActivity(DataView)传给P        MyDataPresenter presenter = new MyDataPresenter(this);//2.2调用传送url的方法
        presenter.netWrok(url);}//7.接收P层传来的数据 因其在子线程中,所有需使用Handler更新ui
    @Override
    public void toBackHome(List<MyData.DataBean> list) {//创建Message对象
            Message msg = new Message();//list集合传入msg
            msg.obj=list;//msg传给handler
            handler.sendMessage(msg);}
}
6.RecyclerView.Adapter适配器:
package com.example.myshopping.adapter;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.myshopping.R;
import com.example.myshopping.model.MyData;
import com.example.myshopping.view.MainActivity;
import java.util.List;

//创建适配器 继承RecyclerView.Adapter 重写其3个方法
public class MyAdapter extends RecyclerView.Adapter{Context context;List<MyData.DataBean> list;public MyAdapter(Context context, List<MyData.DataBean> list) {this.context=context;this.list=list;}@Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//引入条目布局
        View view = View.inflate(context, R.layout.rcy_item, null);//创建MyViewHolder,将view传到MyViewHolder
        MyViewHolder myViewHolder = new MyViewHolder(view);//myViewHolder返回
        return myViewHolder;}@Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {//将系统自带的holder与自定义的MyViewHolder进行绑定
        MyViewHolder myViewHolder = (MyViewHolder) holder;//myViewHolder中的控件进行赋值
        myViewHolder.rcy_title.setText(list.get(position).getTitle());//标题
        myViewHolder.rcy_price.setText(list.get(position).getPrice()+"");//价格
        myViewHolder.rcy_num.setText(list.get(position).getSellerid()+"");//数量

        //使用Glide为图片赋值
        String imgurl="http://www.ca-maimai.com/Public/kindeditor_images/image/20140828/20140828125439_54766.jpg";Glide.with(context).load(imgurl).into(myViewHolder.rcy_img);}//条目的数量
    @Override
    public int getItemCount() {return list.size();}//创建ViewHolder 继承RecyclerView.ViewHolder
    class MyViewHolder extends RecyclerView.ViewHolder {private final CheckBox rcy_cb;private final ImageView rcy_img;private final TextView rcy_title;private final TextView rcy_price;private final Button rcy_jian;private final TextView rcy_num;private final Button rcy_add;private final ImageView rcy_delete;public MyViewHolder(View itemView) {super(itemView);//通过传来的View,找到条目布局中的控件
            rcy_cb = itemView.findViewById(R.id.rcy_cb);rcy_img = itemView.findViewById(R.id.rcy_img);rcy_title = itemView.findViewById(R.id.rcy_title);rcy_price = itemView.findViewById(R.id.rcy_price);rcy_jian = itemView.findViewById(R.id.rcy_jian);rcy_num = itemView.findViewById(R.id.rcy_num);rcy_add = itemView.findViewById(R.id.rcy_add);rcy_delete = itemView.findViewById(R.id.rcy_delete);}}}

7. OkhtttpUtils工具类:

package com.example.myshopping.urils;
import android.os.Environment;
import java.io.File;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import okhttp3.Cache;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
public class OkhtttpUtils {//单例模式,把构造方法进行私有化
    public OkhtttpUtils(){};static  OkHttpClient client;public static OkHttpClient getInstance(){if (client==null) {//更加安全
            synchronized (OkhtttpUtils.class) {//缓存的地方     mnt/sdcard
                File file = new File(Environment.getExternalStorageDirectory(), "cache11");client = new OkHttpClient().newBuilder().readTimeout(3000, TimeUnit.SECONDS)   //设置读取超时时间
                        .connectTimeout(3000, TimeUnit.SECONDS) //设置连接的超时时间
                        .cache(new Cache(file, 10 * 1024)).build();}}return client;}/**
     * get请求
     * Callback  是一个接口
     */
    public static void doGet(String url, Callback callback){//1:拿到okhttpclient  对像

        OkHttpClient client = getInstance();//2:进行请求的操作

        Request request = new Request.Builder().url(url).build();client.newCall(request).enqueue(callback);}//post请求

    /**
     *
     * @param url  请求的地址
     * @param parms   请求的参数
     * @param callback  callback
     */
    public static void doPost(String url, Map<String,String> parms,Callback callback){//得到客户端的对像
        OkHttpClient client = getInstance();//不是FormBody,而是一个Builder
        FormBody.Builder body = new FormBody.Builder();//key   value
        for (String key:parms.keySet()){//value的值
            body.add(key,parms.get(key));}Request request = new Request.Builder().url(url).post(body.build()).build();client.newCall(request).enqueue(callback);}//用来上传图片的

    //url  , 图片  ,参数    Callback
    public static  void upImage(String url,File file,String filenName,Map<String,String> params,Callback callback){OkHttpClient client = getInstance();//requestBody的实现类  Formbody
        MultipartBody.Builder builder = new MultipartBody.Builder();if (params!=null){for (String key :params.keySet()){builder.addFormDataPart(key,params.get(key));}}//设置类型
        builder.setType(MultipartBody.FORM);builder.addFormDataPart("file",filenName,RequestBody.create(MediaType.parse("application/octet-stream"),file));// builder.setType(MultipartBody.FORM);
     // builder.addFormDataPart("file",filenName,RequestBody.create(MediaType.parse("application/octet-stream"),file));
        //builder.addFormDataPart("file","aa.png",builder.build());

        Request request = new Request.Builder().url(url).post(builder.build()).build();client.newCall(request).enqueue(callback);}
}

8. MyData数据Bean:

package com.example.myshopping.model;
import java.util.List;

public class MyData {/**
     * msg : 请求成功
     * code : 0
     * data : [{"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: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":5,"price":88.99,"pscid":1,"salenum":678,"sellerid":21,"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":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":7,"price":120.01,"pscid":1,"salenum":1266,"sellerid":23,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-14T21:38:26","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":23,"price":188,"pscid":1,"salenum":233,"sellerid":16,"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: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":16,"price":199,"pscid":1,"salenum":777,"sellerid":9,"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":15,"price":233.99,"pscid":1,"salenum":666,"sellerid":8,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"},{"bargainPrice":111.99,"createtime":"2017-10-03T23:43:53","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":12,"price":256,"pscid":1,"salenum":0,"sellerid":5,"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-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
         */

        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;}}
}

9.主布局+条布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.myshopping.view.MainActivity"><LinearLayout
       android:layout_width="match_parent"
       android:layout_height="100px"
       android:orientation="horizontal"><TextView
           android:layout_width="0dp"
           android:layout_weight="1"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:gravity="center"
           android:text="《返回"/><ImageView
           android:id="@+id/my_icon"
           android:layout_width="0dp"
           android:layout_weight="1"
           android:layout_height="wrap_content"
           android:layout_gravity="center"
           android:gravity="center"
           android:src="@drawable/icon"/><TextView
           android:layout_width="0dp"
           android:layout_weight="1"
           android:layout_gravity="center"
           android:gravity="center"
           android:layout_height="wrap_content"
           android:text="完成"/></LinearLayout><android.support.v7.widget.RecyclerView
        android:id="@+id/my_rcy"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"></android.support.v7.widget.RecyclerView><LinearLayout
        android:layout_width="match_parent"
        android:layout_height="100px"
        android:orientation="horizontal"><CheckBox
            android:id="@+id/my_cb"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="全选"/><TextView
            android:id="@+id/my_zj"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="总价:"/><TextView
            android:id="@+id/my_js"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_height="wrap_content"
            android:text="件数:"/></LinearLayout></LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"><LinearLayout
    android:layout_width="match_parent"
    android:layout_height="150px"
    android:orientation="horizontal"
    android:padding="10px"><CheckBox
        android:id="@+id/rcy_cb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"/><ImageView
        android:id="@+id/rcy_img"
        android:layout_width="150px"
        android:layout_height="150px"
        android:src="@mipmap/ic_launcher"
        android:layout_marginLeft="10px"
        android:layout_gravity="center_vertical"/><LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_marginLeft="20px"
        android:paddingTop="20px"><TextView
            android:id="@+id/rcy_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="北京稻香村 稻香村中秋节月饼"
            android:layout_marginLeft="20px"/><LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_marginLeft="20px" ><TextView
                android:id="@+id/rcy_price"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="118.0" /><Button
                android:id="@+id/rcy_jian"
                android:layout_width="50px"
                android:layout_height="wrap_content"
                android:text="-"
                android:layout_marginLeft="20px"/><TextView
                android:id="@+id/rcy_num"
                android:layout_width="50px"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="15"/><Button
                android:id="@+id/rcy_add"
                android:layout_width="50px"
                android:layout_height="wrap_content"
                android:text="+"/><ImageView
                android:id="@+id/rcy_delete"
                android:layout_width="50px"
                android:layout_height="50px"
                android:src="@drawable/delete"
                android:layout_marginLeft="20px"
                android:layout_gravity="center_vertical" /></LinearLayout></LinearLayout></LinearLayout></LinearLayout>
												

购物车页面实现 :Okhttp+mvp+RecyclerView相关推荐

  1. 购物车页面实现 :Okhttp+mvp+RecyclerView(更新)

    1.清单文件配置请求网络权限: <!--网络请求的权限--> <uses-permission android:name="android.permission.INTER ...

  2. Fragment购物车页面 (快捷键)

    例: shopping_cart_checked shopping_cart_none_check //一Fragment购物车页面 //如果没有数据就换一个 uid (private int uid ...

  3. Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP

    Android使用RxJava+Retrofit2+Okhttp+MVP练习的APP 项目截图 这是我的目录结构 五步使用RxJava+Retrofit2+Okhttp+RxCache 第一步:导包 ...

  4. 模拟购物车页面全选单选的金额累加

    1.前面部分的内容就不过多说明了,就是OkGo请求数据然后封装适配器加入数据源,先上代码 先上适配器的代码,注意这里使用的万能适配器,加入依赖 implementation 'com.github.C ...

  5. php购物车修改单价,php – woocommerce在结帐和购物车页面更改价格

    通过woocommerce,在我的网站中,我想在购物车页面中添加一个选择输入,用户可以在两个选项之间选择一个值,并根据此值我将更改价格. 到目前为止,我可以获得总数并使用此更改它: function ...

  6. 微信小程序|开发实战篇之十一---商品页面和购物车页面

    products页面和cart页面 1.商品页面解构 2.购物车页面解构 1.商品页面解构 修改数量这里使用picker组件: 加入购物车动画,使用css动画中的贝塞尔曲线作为运动速率,从点击起始位置 ...

  7. 为啥我从后台查到的值在页面显示的是undefined_【java笔记】046天,作购物车页面,学习JavaScript...

    今天是学习java 的第46天,今天先是完成了购物车页面的简单制作,然后是开始学习JavaScript的知识. html+css 只是可以实现静态的页面无法实现动态的效果 : 购物车页面的制作: 效果 ...

  8. 点击加入购物车直接转到购物车页面

    有的网站管理员希望自己的网站在顾客点击网站上的商品时,能够直接转到购物车页面进行结账. 1. 安装本插件前建议先安装另一个插件: http://www.mycncart.com/index.php?r ...

  9. Vue/vant——未登陆时清空购物车以及拦截未登录的状态拒绝进入购物车页面

    cart.js // 清空购物车clearCart(state){state.list = [],state.selectAll = []} axios.js "use strict&quo ...

最新文章

  1. php 4 创建公共的链接数据库php文件并在其它文件引用它
  2. python时间函数报错_python3中datetime库,time库以及pandas中的时间函数区别与详解...
  3. 随机蕨(Random Fern)
  4. 项目经理需要修炼的9件事
  5. Linux服务源码安装后开机自启动04-php-fpm
  6. 虚拟机安装中文输入法
  7. 利用开放定址法实现散列表的创建、插入、删除、查找操作_散列表和IO
  8. Codeforces 474 C. Captain Marmot
  9. javascript 创建对象方式
  10. 外边距合并(HTML、CSS)
  11. django前后端数据交互
  12. SpringBoot 之Thymeleaf模板
  13. 编译自己功能定制的Fedora7内核
  14. session的保存方式.
  15. 3DMax 完全重置
  16. JAVA项目面试总结 电商系统 OA办公系统 P2P网贷
  17. 工厂模式(包含3种工厂)
  18. java繁体_Java-汉字繁体拼音转换
  19. 荒野乱斗好友系统分析
  20. SX1278、SX1276、SX1262的简单详解

热门文章

  1. [深度学习基础] 斯坦福CS231n李飞飞计算机视觉Lecture 5笔记
  2. 数据结构与算法之——高斯算法
  3. 一家初创公司如何将企业绩效管理带入新高度
  4. DWORD类型转LPWSTR类型
  5. A10负载均衡设备GSLB(入向链路负载均衡)部署在内网中的实际应用
  6. CURL下载文件简易进度条
  7. 单片机程序中,Modbus功能码的回调函数如何编写--FreeModbus从站设计(10)
  8. linux/unix 单行脚本
  9. 树莓派nginx+php+MariaDB配置
  10. [一图一世界] 从2017年Amazon年Q3财报看市场趋势