您的位置:首页 > 理论基础 > 计算机网络

购物车页面实现 :Okhttp+mvp+RecyclerView

2018-04-02 19:46 519 查看
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{//重写请求数据的方法@Overridepublic void getData(String url, final DataPresenter presenter) {//使用OkHttp进行请求 重写失败与成功的方法OkhtttpUtils.doGet(url, new Callback() {//失败@Overridepublic void onFailure(Call call, IOException e) {}//成功@Overridepublic 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层传来的集合数据@Overridepublic void Success(List<MyData.DataBean> list) {//5.调用V层接收数据的方法 把list集合传回m层dataView.toBackHome(list);}//失败@Overridepublic void Error() {}//1.定义接收数据接口url的方法public void netWrok(String url){//6.调用m层请求数据的方法,将接口url和p层传到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";//创建HandlerHandler handler = new Handler(){@Overridepublic 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);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//找到资源控件的IDmy_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() {@Overridepublic 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@Overridepublic void toBackHome(List<MyData.DataBean> list) {//创建Message对象Message msg = new Message();//将list集合传入msgmsg.obj=list;//将msg传给handlerhandler.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;}@Overridepublic RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {//引入条目布局View view = View.inflate(context, R.layout.rcy_item, null);//创建MyViewHolder,将view传到MyViewHolderMyViewHolder myViewHolder = new MyViewHolder(view);//将myViewHolder返回return myViewHolder;}@Overridepublic 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);}//条目的数量@Overridepublic int getItemCount() {return list.size();}//创建ViewHolder 继承RecyclerView.ViewHolderclass 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/sdcardFile 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,而是一个BuilderFormBody.Builder body = new FormBody.Builder();//key   valuefor (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  , 图片  ,参数    Callbackpublic static  void upImage(String url,File file,String filenName,Map<String,String> params,Callback callback){OkHttpClient client = getInstance();//requestBody的实现类  FormbodyMultipartBody.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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="100px"android:orientation="horizontal"><TextViewandroid:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"android:layout_gravity="center"android:gravity="center"android:text="《返回"/><ImageViewandroid: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"/><TextViewandroid: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.RecyclerViewandroid:id="@+id/my_rcy"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="1"></android.support.v7.widget.RecyclerView><LinearLayoutandroid:layout_width="match_parent"android:layout_height="100px"android:orientation="horizontal"><CheckBoxandroid: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="全选"/><TextViewandroid: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="总价:"/><TextViewandroid: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"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="150px"android:orientation="horizontal"android:padding="10px"><CheckBoxandroid:id="@+id/rcy_cb"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="center_vertical"/><ImageViewandroid: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"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="vertical"android:layout_marginLeft="20px"android:paddingTop="20px"><TextViewandroid:id="@+id/rcy_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="北京稻香村 稻香村中秋节月饼"android:layout_marginLeft="20px"/><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"android:layout_marginLeft="20px" ><TextViewandroid:id="@+id/rcy_price"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="118.0" /><Buttonandroid:id="@+id/rcy_jian"android:layout_width="50px"android:layout_height="wrap_content"android:text="-"android:layout_marginLeft="20px"/><TextViewandroid:id="@+id/rcy_num"android:layout_width="50px"android:layout_height="wrap_content"android:gravity="center_horizontal"android:text="15"/><Buttonandroid:id="@+id/rcy_add"android:layout_width="50px"android:layout_height="wrap_content"android:text="+"/><ImageViewandroid: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>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: