购物车没有结算的点击事件 点击子条目弹出加减
布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout 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" tools:context="com.example.com.yuekao0601.activity.ShoppingActivity"> <TextView android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentTop="true" android:text="购物车" android:gravity="center" android:background="#f12" android:id="@+id/tv" android:textSize="16sp" /> <ExpandableListView android:layout_width="match_parent" android:layout_height="match_parent" android:groupIndicator="@null" android:layout_below="@id/tv" android:scrollbars="none" android:id="@+id/exlv" > </ExpandableListView> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_alignParentBottom="true" android:layout_marginTop="1dp" android:id="@+id/rela" android:background="#f12"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/checkbox" android:focusable="false" android:layout_centerVertical="true" android:layout_weight="1"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tv_price" android:layout_centerInParent="true"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:focusable="false" android:id="@+id/sale" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:text="结算(0)" /> </RelativeLayout> </RelativeLayout>
group布局
<?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="40dp" android:orientation="horizontal"> <CheckBox android:layout_width="30dp" android:layout_height="30dp" android:layout_gravity="center" android:layout_marginLeft="6dp" android:layout_marginRight="6dp" android:id="@+id/check_group" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/tv_group" android:layout_centerVertical="true" android:text="11111"/> </LinearLayout>
child布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="horizontal" android:layout_height="100dp"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/check_child" android:layout_gravity="center_vertical" android:layout_marginLeft="20dp" /> <ImageView android:layout_width="85dp" android:layout_height="85dp" android:id="@+id/img_child" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp"/> <RelativeLayout android:layout_width="wrap_content" android:layout_height="100dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:layout_marginLeft="10dp" android:orientation="vertical"> <RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:ellipsize="end" android:maxLines="2" android:singleLine="true" android:text="" android:textSize="16sp" android:textColor="#f12" android:id="@+id/tv_child" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tv1_child" android:layout_below="@id/tv_child" android:gravity="center" android:layout_gravity="left" android:layout_marginTop="10dp" android:text="颜色:黑色;尺码:23" android:textColor="#f12" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tv1_child" android:layout_marginTop="6dp" > <TextView android:id="@+id/child_price" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:singleLine="true" android:text="¥ 308.00" android:textColor="#000" android:textStyle="bold" /> <TextView android:id="@+id/child_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="20dp" android:text="X 1" android:textColor="#000" /> </RelativeLayout> </RelativeLayout> </LinearLayout> </RelativeLayout> </LinearLayout>
alert布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="修改购买的数量" android:layout_centerHorizontal="true" android:id="@+id/tv" android:textSize="16sp" android:layout_margin="10dp"/> <LinearLayout android:layout_below="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/lin" android:gravity="center"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:id="@+id/btn_jian" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2" android:layout_gravity="center" android:padding="20dp" android:id="@+id/tv_num" android:textSize="16sp"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" android:id="@+id/btn_jia" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_below="@id/lin"> <Button android:layout_width="0dp" android:layout_weight="1" android:id="@+id/quxiao" android:layout_height="match_parent" android:text="取消"/> <Button android:layout_width="0dp" android:layout_weight="1" android:id="@+id/queding" android:layout_height="match_parent" android:text="确定"/> </LinearLayout> </RelativeLayout>
activity
package com.example.com.yuekao0601.activity; import android.content.Intent; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.ExpandableListView; import android.widget.TextView; import com.example.com.yuekao0601.R; import com.example.com.yuekao0601.adapter.ShoppingAdapter; import com.example.com.yuekao0601.bean.ShoppingBean; import com.example.com.yuekao0601.presenter.MyShoppingPresenter; import com.example.com.yuekao0601.presenter.MyUpdatePresenter; import com.example.com.yuekao0601.view.DataView; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; public class ShoppingActivity extends AppCompatActivity implements DataView<ShoppingBean>,ShoppingAdapter.onChecked{ private MyShoppingPresenter myShoppingPresenter; private ExpandableListView exlv; private Button quxiao; private Button btn_jian; private Button btn_jia; private Button queding; private TextView tv_num; private List<ShoppingBean.DataBean> data=new ArrayList<>(); private CheckBox checkbox; private TextView tv_price; private DecimalFormat df=new DecimalFormat("0.00"); private Button sale; private ShoppingAdapter shoppingAdapter; private AlertDialog dialog; private String sellerid; private int pid; private MyUpdatePresenter myUpdatePresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shopping); exlv = findViewById(R.id.exlv); checkbox=findViewById(R.id.checkbox); tv_price = findViewById(R.id.tv_price); sale = findViewById(R.id.sale); myShoppingPresenter = new MyShoppingPresenter(this); myShoppingPresenter.toGetUrl("71"); final AlertDialog.Builder builder = new AlertDialog.Builder(this); View inflate = View.inflate(this, R.layout.alertdialog, null); btn_jia = inflate.findViewById(R.id.btn_jia); btn_jian = inflate.findViewById(R.id.btn_jian); quxiao = inflate.findViewById(R.id.quxiao); queding = inflate.findViewById(R.id.queding); tv_num = inflate.findViewById(R.id.tv_num); myUpdatePresenter = new MyUpdatePresenter(this); btn_jia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = tv_num.getText().toString(); int i = Integer.parseInt(s); i++; btn_jian.setEnabled(true); tv_num.setText(i+""); } }); btn_jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String s = tv_num.getText().toString(); int i = Integer.parseInt(s); i--; if (i==1){ btn_jian.setEnabled(false); } tv_num.setText(i+""); } }); quxiao.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); queding.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String trim = tv_num.getText().toString().trim(); myUpdatePresenter.toGetUpdate("71",sellerid+"",pid+"",trim); dialog.dismiss(); } }); builder.setView(inflate); dialog = builder.create(); //全选 反选 checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (checkbox.isChecked()){ for (int i = 0; i < data.size() ; i++) { data.get(i).setGroupCheck(true); List<ShoppingBean.DataBean.ListBean> list = data.get(i).getList(); for (int j = 0; j < list.size(); j++) { list.get(j).setChildCheck(true); } } }else { for (int i = 0; i < data.size(); i++) { data.get(i).setGroupCheck(false); List<ShoppingBean.DataBean.ListBean> list = data.get(i).getList(); for (int j = 0; j < list.size(); j++) { list.get(j).setChildCheck(false); } } } //设置价钱 setPrices(); } }); exlv.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { int num = data.get(groupPosition).getList().get(childPosition).getNum(); tv_num.setText(num+""); dialog.show(); sellerid = data.get(groupPosition).getSellerid(); pid = data.get(groupPosition).getList().get(childPosition).getPid(); return true; } }); } private void setPrices() { int num=0; double price=0.00; for (int i = 0; i < data.size(); i++) { List<ShoppingBean.DataBean.ListBean> list = data.get(i).getList(); for (int j = 0; j < list.size(); j++) { if (list.get(j).isChildCheck()){ num+=list.get(j).getNum(); price+=list.get(j).getNum()*list.get(j).getPrice(); } } } tv_price.setText("¥"+df.format(price)); sale.setText(num+""); shoppingAdapter.notifyDataSetChanged(); } @Override public void success(ShoppingBean shoppingBean) { if(shoppingBean.getMsg().equals("success")){ myShoppingPresenter.toGetUrl("71"); }else { data.clear(); List<ShoppingBean.DataBean> shoppingData = shoppingBean.getData(); shoppingData.remove(0); data.addAll(shoppingData); getAdapter(); }} private void getAdapter() { if (shoppingAdapter==null){ shoppingAdapter = new ShoppingAdapter(data, this); exlv.setAdapter(shoppingAdapter); for (int i = 0; i < data.size(); i++) { exlv.expandGroup(i); } shoppingAdapter.setChecked(this); }else { shoppingAdapter.notifyDataSetChanged(); } } @Override public void failed(String message) { } @Override public void onGroupCheck(int group, boolean checked) { data.get(group).setGroupCheck(checked); List<ShoppingBean.DataBean.ListBean> list = data.get(group).getList(); for (int i = 0; i < list.size(); i++) { list.get(i).setChildCheck(checked); } setPrices(); } @Override public void onChildCheck(int group, int child, boolean checked) { data.get(group).getList().get(child).setChildCheck(checked); boolean b = setChildCheckedAll(group); if (b){ data.get(group).setGroupCheck(true); }else { data.get(group).setGroupCheck(false); } setPrices(); } //计算子条目是否全部选中 private boolean setChildCheckedAll(int group){ List<ShoppingBean.DataBean.ListBean> list = data.get(group).getList(); for (int i = 0; i < list.size(); i++) { if (!list.get(i).isChildCheck()){ return false; } } return true; } }
adapter
package com.example.com.yuekao0601.adapter; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.CheckBox; import android.widget.ImageView; import android.widget.TextView; import com.bumptech.glide.Glide; import com.example.com.yuekao0601.R; import com.example.com.yuekao0601.activity.ShoppingActivity; import com.example.com.yuekao0601.bean.ShoppingBean; import java.util.List; /** * Created by linmeihui on 2018/6/2. */ public class ShoppingAdapter extends BaseExpandableListAdapter{ List<ShoppingBean.DataBean> data; Context context; public ShoppingAdapter(List<ShoppingBean.DataBean> data, Context context) { this.context=context; this.data=data; } @Override public int getGroupCount() { return data.size(); } @Override public int getChildrenCount(int groupPosition) { return data.get(groupPosition).getList().size(); } @Override public Object getGroup(int groupPosition) { return data.get(groupPosition); } @Override public Object getChild(int groupPosition, int childPosition) { return data.get(childPosition).getList().get(childPosition); } @Override public long getGroupId(int groupPosition) { return groupPosition; } @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } @Override public boolean hasStableIds() { return false; } @Override public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { final GroupViewHolder groupViewHolder; if (convertView==null){ convertView=View.inflate(context, R.layout.group_item,null); groupViewHolder=new GroupViewHolder(); groupViewHolder.check_group=convertView.findViewById(R.id.check_group); groupViewHolder.tv_group=convertView.findViewById(R.id.tv_group); convertView.setTag(groupViewHolder); }else { groupViewHolder = (GroupViewHolder) convertView.getTag(); } groupViewHolder.tv_group.setText(data.get(groupPosition).getSellerName()); groupViewHolder.check_group.setChecked(data.get(groupPosition).isGroupCheck()); groupViewHolder.check_group.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { checked.onGroupCheck(groupPosition,groupViewHolder.check_group.isChecked()); } }); return convertView; } @Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { final ChildViewHolder childViewHolder; if(convertView==null){ convertView=View.inflate(context,R.layout.child_item,null); childViewHolder=new ChildViewHolder(); childViewHolder.check_child=convertView.findViewById(R.id.check_child); childViewHolder.child_num=convertView.findViewById(R.id.child_num); childViewHolder.child_price=convertView.findViewById(R.id.child_price); childViewHolder.img_child=convertView.findViewById(R.id.img_child); childViewHolder.tv1_child=convertView.findViewById(R.id.tv1_child); childViewHolder.tv_child=convertView.findViewById(R.id.tv_child); convertView.setTag(childViewHolder); } else { childViewHolder= (ChildViewHolder) convertView.getTag(); } final List<ShoppingBean.DataBean.ListBean> list = data.get(groupPosition).getList(); childViewHolder.tv_child.setText(list.get(childPosition).getTitle()); childViewHolder.child_price.setText(list.get(childPosition).getPrice()+""); childViewHolder.child_num.setText(list.get(childPosition).getNum()+""); childViewHolder.check_child.setChecked(list.get(childPosition).isChildCheck()); childViewHolder.check_child.setFocusable(false); Glide.with(context).load(list.get(childPosition).getImages()).into(childViewHolder.img_child); //设置复选框选中 childViewHolder.check_child.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.get(childPosition).setChildCheck(childViewHolder.check_child.isChecked()); checked.onChildCheck(groupPosition,childPosition,childViewHolder.check_child.isChecked()); } }); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } class GroupViewHolder{ CheckBox check_group; TextView tv_group; } class ChildViewHolder{ CheckBox check_child; ImageView img_child; TextView tv_child; TextView tv1_child; TextView child_price; TextView child_num; } private onChecked checked; public void setChecked(onChecked checked) { this.checked = checked; } //定义接口 public interface onChecked{ //父项选中状态 void onGroupCheck(int group,boolean checked); //子项选中状态 void onChildCheck(int group,int child,boolean checked); } }
view
package com.example.com.yuekao0601.view; import android.os.Message; import com.example.com.yuekao0601.bean.ShouyeBean; import io.reactivex.Flowable; /** * Created by linmeihui on 2018/6/1. */ public interface DataView <T>{ void success(T t) ; void failed(String message); }
shoppingbean'
package com.example.com.yuekao0601.bean; import java.util.List; /** * Created by linmeihui on 2018/6/2. */ public class ShoppingBean { /** * code : 0 * data : [{"list":[{"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","num":1,"pid":8,"price":324,"pscid":1,"selected":0,"sellerid":1,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家1","sellerid":"1"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:38:26","detailUrl":"https://item.m.jd.com/product/5025518.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n0/jfs/t8830/106/1760940277/195595/5cf9412f/59bf2ef5N5ab7dc16.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5428/70/1520969931/274676/b644dd0d/591128e7Nd2f70da0.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5566/365/1519564203/36911/620c750c/591128eaN54ac3363.jpg!q70.jpg","num":2,"pid":58,"price":6399,"pscid":40,"selected":0,"sellerid":2,"subhead":"升级4G大显存!Nvme协议Pcie SSD,速度快人一步】GTX1050Ti就选拯救者!专业游戏键盘&新模具全新设计!","title":"联想(Lenovo)拯救者R720 15.6英寸游戏笔记本电脑(i5-7300HQ 8G 1T+128G SSD GTX1050Ti 4G IPS 黑)"},{"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","num":1,"pid":9,"price":78.99,"pscid":1,"selected":0,"sellerid":2,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家2","sellerid":"2"},{"list":[{"bargainPrice":5599,"createtime":"2017-10-10T17:30:32","detailUrl":"https://item.m.jd.com/product/4824715.html?utm#_source=androidapp&utm#_medium=appshare&utm#_campaign=t#_335139774&utm#_term=QQfriends","images":"https://m.360buyimg.com/n12/jfs/t7768/184/1153704394/148460/f42e1432/599a930fN8a85626b.jpg!q70.jpg","num":1,"pid":59,"price":5599,"pscid":40,"selected":0,"sellerid":3,"subhead":"游戏本选择4G独显,拒绝掉帧】升级版IPS全高清防眩光显示屏,WASD方向键颜色加持,三大出风口立体散热!","title":"戴尔DELL灵越游匣15PR-6648B GTX1050 15.6英寸游戏笔记本电脑(i5-7300HQ 8G 128GSSD+1T 4G独显 IPS)黑"},{"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","num":1,"pid":10,"price":555.55,"pscid":1,"selected":0,"sellerid":3,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家3","sellerid":"3"},{"list":[{"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","num":1,"pid":11,"price":8989,"pscid":1,"selected":0,"sellerid":4,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家4","sellerid":"4"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:38:26","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":1,"pid":61,"price":14999,"pscid":40,"selected":0,"sellerid":5,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"},{"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","num":1,"pid":12,"price":256,"pscid":1,"selected":0,"sellerid":5,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家5","sellerid":"5"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:48:08","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":1,"pid":65,"price":12000,"pscid":40,"selected":0,"sellerid":9,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"}],"sellerName":"商家9","sellerid":"9"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:38:26","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":1,"pid":72,"price":33999,"pscid":40,"selected":0,"sellerid":16,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"}],"sellerName":"商家16","sellerid":"16"},{"list":[{"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","num":4,"pid":1,"price":118,"pscid":1,"selected":0,"sellerid":17,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家17","sellerid":"17"},{"list":[{"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","num":3,"pid":2,"price":299,"pscid":1,"selected":0,"sellerid":18,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家18","sellerid":"18"},{"list":[{"bargainPrice":11800,"createtime":"2017-10-14T21:38:26","detailUrl":"https://mitem.jd.hk/ware/view.action?wareId=1988853309&cachekey=1acb07a701ece8d2434a6ae7fa6870a1","images":"https://m.360buyimg.com/n0/jfs/t6130/97/1370670410/180682/1109582a/593276b1Nd81fe723.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5698/110/2617517836/202970/c9388feb/593276b7Nbd94ef1f.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5815/178/2614671118/51656/7f52d137/593276c7N107b725a.jpg!q70.jpg|https://m.360buyimg.com/n0/jfs/t5878/60/2557817477/30873/4502b606/593276caN5a7d6357.jpg!q70.jpg","num":1,"pid":75,"price":36999,"pscid":40,"selected":0,"sellerid":19,"subhead":"购买电脑办公部分商品满1元返火车票5元优惠券(返完即止)","title":"全球购 新款Apple MacBook Pro 苹果笔记本电脑 银色VP2新13英寸Bar i5/8G/256G"}],"sellerName":"商家19","sellerid":"19"},{"list":[{"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","num":1,"pid":4,"price":999,"pscid":1,"selected":0,"sellerid":20,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家20","sellerid":"20"},{"list":[{"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","num":10,"pid":5,"price":88.99,"pscid":1,"selected":0,"sellerid":21,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家21","sellerid":"21"},{"list":[{"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","num":1,"pid":6,"price":7.99,"pscid":1,"selected":0,"sellerid":22,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家22","sellerid":"22"},{"list":[{"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","num":1,"pid":7,"price":120.01,"pscid":1,"selected":0,"sellerid":23,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}],"sellerName":"商家23","sellerid":"23"}] * msg : 请求成功 */ private String code; private String msg; private List<DataBean> data; public String getCode() { return code; } public void setCode(String code) { this.code = code; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public List<DataBean> getData() { return data; } public void setData(List<DataBean> data) { this.data = data; } public static class DataBean { /** * list : [{"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","num":1,"pid":8,"price":324,"pscid":1,"selected":0,"sellerid":1,"subhead":"每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下","title":"北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g"}] * sellerName : 商家1 * sellerid : 1 */ private String sellerName; private String sellerid; private List<ListBean> list; private boolean groupCheck; public boolean isGroupCheck() { return groupCheck; } public void setGroupCheck(boolean groupCheck) { this.groupCheck = groupCheck; } public String getSellerName() { return sellerName; } public void setSellerName(String sellerName) { this.sellerName = sellerName; } public String getSellerid() { return sellerid; } public void setSellerid(String sellerid) { this.sellerid = sellerid; } public List<ListBean> getList() { return list; } public void setList(List<ListBean> list) { this.list = list; } public static class ListBean { /** * 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 * num : 1 * pid : 8 * price : 324.0 * pscid : 1 * selected : 0 * sellerid : 1 * subhead : 每个中秋都不能简单,无论身在何处,你总需要一块饼让生活更圆满,京东月饼让爱更圆满京东自营,闪电配送,更多惊喜,快用手指戳一下 * title : 北京稻香村 稻香村中秋节月饼 老北京月饼礼盒655g */ private double bargainPrice; private String createtime; private String detailUrl; private String images; private int num; private int pid; private double price; private int pscid; private int selected; private int sellerid; private String subhead; private String title; private boolean childCheck; public boolean isChildCheck() { return childCheck; } public void setChildCheck(boolean childCheck) { this.childCheck = childCheck; } 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 getNum() { return num; } public void setNum(int num) { this.num = num; } 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 getSelected() { return selected; } public void setSelected(int selected) { this.selected = selected; } 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; } } } }
presenter
package com.example.com.yuekao0601.presenter; import com.example.com.yuekao0601.bean.ShoppingBean; import com.example.com.yuekao0601.model.MyShoppingModel; import com.example.com.yuekao0601.view.DataView; import io.reactivex.Flowable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import io.reactivex.subscribers.DefaultSubscriber; /** * Created by linmeihui on 2018/6/2. */ public class MyShoppingPresenter implements DataPresenter<ShoppingBean> { DataView dataView; private final MyShoppingModel myShoppingModel; public MyShoppingPresenter(DataView dataView){ this.dataView=dataView; myShoppingModel = new MyShoppingModel(); } public void toGetUrl(String uid){ myShoppingModel.toUrl(this,uid); } @Override public void onSuccess(Flowable<ShoppingBean> t) { t.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new DefaultSubscriber<ShoppingBean>() { @Override public void onNext(ShoppingBean shoppingBean) { dataView.success(shoppingBean); } @Override public void onError(Throwable t) { } @Override public void onComplete() { } }); } }
package com.example.com.yuekao0601.presenter; import io.reactivex.Flowable; /** * Created by linmeihui on 2018/6/1. */ public interface DataPresenter<T> { void onSuccess(Flowable<T> t); }
api
package com.example.com.yuekao0601.api; import com.example.com.yuekao0601.bean.ShoppingBean; import com.example.com.yuekao0601.bean.ShouyeBean; import io.reactivex.Flowable; import retrofit2.http.GET; import retrofit2.http.Query; /** * Created by linmeihui on 2018/6/1. */ public interface ApiService { //首页接口 @GET("ad/getAd") Flowable<ShouyeBean> getShouye(); //查找购物车 @GET("product/getCarts") Flowable<ShoppingBean> getShop(@Query("uid")String uid); //更新购物车 @GET("product/updateCarts") Flowable<ShoppingBean> getUpdate(@Query("uid")String uid,@Query("sellerid")String sellerid,@Query("pid")String pid,@Query("num")String num); }
model
package com.example.com.yuekao0601.model; import com.example.com.yuekao0601.api.ApiService; import com.example.com.yuekao0601.bean.ShoppingBean; import com.example.com.yuekao0601.presenter.DataPresenter; import com.example.com.yuekao0601.presenter.MyShoppingPresenter; import com.example.com.yuekao0601.utils.ShoppingUtils; import io.reactivex.Flowable; /** * Created by linmeihui on 2018/6/2. */ public class MyShoppingModel { public void toUrl(DataPresenter dataPresenter,String uid) { Flowable<ShoppingBean> shop = ShoppingUtils.getInstance().getApi().getShop(uid); dataPresenter.onSuccess(shop); } }
修改的presenter
package com.example.com.yuekao0601.presenter; import com.example.com.yuekao0601.bean.ShoppingBean; import com.example.com.yuekao0601.model.MyUpdateModel; import com.example.com.yuekao0601.view.DataView; import io.reactivex.Flowable; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import io.reactivex.subscribers.DefaultSubscriber; /** * Created by linmeihui on 2018/6/3. */ public class MyUpdatePresenter implements DataPresenter<ShoppingBean> { DataView dataView; private final MyUpdateModel myUpdateModel; public MyUpdatePresenter(DataView dataView){ this.dataView=dataView; myUpdateModel = new MyUpdateModel(); } @Override public void onSuccess(Flowable<ShoppingBean> t) { t.subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new DefaultSubscriber<ShoppingBean>() { @Override public void onNext(ShoppingBean shoppingBean) { dataView.success(shoppingBean); } @Override public void onError(Throwable t) { } @Override public void onComplete() { } }); } public void toGetUpdate(String uid,String sellerid,String pid,String num){ myUpdateModel.toUrlUpdate(this,uid,pid,sellerid,num); } }
修改的model
package com.example.com.yuekao0601.model; import com.example.com.yuekao0601.bean.ShoppingBean; import com.example.com.yuekao0601.presenter.DataPresenter; import com.example.com.yuekao0601.presenter.MyUpdatePresenter; import com.example.com.yuekao0601.utils.ShoppingUtils; import io.reactivex.Flowable; /** * Created by linmeihui on 2018/6/3. */ public class MyUpdateModel { public void toUrlUpdate(DataPresenter dataPresenter,String uid,String pid,String sellerid,String num){ Flowable<ShoppingBean> update = ShoppingUtils.getInstance().getApi().getUpdate(uid, sellerid, pid, num); dataPresenter.onSuccess(update); } }
utils
package com.example.com.yuekao0601.utils; import com.example.com.yuekao0601.api.ApiService; import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; /** * Created by linmeihui on 2018/6/2. */ public class ShoppingUtils { private static volatile ShoppingUtils instance; private String url="http://120.27.23.105/"; private Retrofit retrofit; public static ShoppingUtils getInstance(){ if (instance==null){ synchronized (ShoppingUtils.class){ if (null==instance){ instance=new ShoppingUtils(); } } } return instance; } private ShoppingUtils(){ OkHttpClient okHttpClient=new OkHttpClient(); retrofit=new Retrofit.Builder() .client(okHttpClient) .baseUrl(url) .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFactory(RxJava2CallAdapterFactory.create()) .build(); } public ApiService getApi(){ return retrofit.create(ApiService.class); } }