大致布局,不洗勿喷
购物车布局
<?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">
<ExpandableListView
android:id="@+id/expandablelv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/ll_bottom">
</ExpandableListView>
<LinearLayout
android:id="@+id/ll_bottom"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_alignParentBottom="true"
android:orientation="horizontal"
android:background="#f9f6f6">
<CheckBox
android:id="@+id/all_checkbox"
android:gravity="center"
android:text="全选"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="50dp"
android:orientation="vertical"
android:gravity="center">
<TextView
android:id="@+id/tv_allmoney"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="总价:0.0"
/>
<TextView
android:id="@+id/tv_allnumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="共0件商品"/>
</LinearLayout>
<Button
android:id="@+id/btn_balance"
android:gravity="center"
android:layout_marginLeft="150dp"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="#f6373e"
android:text="去结算"/>
</LinearLayout>
</RelativeLayout>
一级列表布局
<?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:padding="20dp"
android:orientation="horizontal">
<!--android:focusable="false"-->
<CheckBox
android:id="@+id/store_chekbox"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center"/>
<TextView
android:id="@+id/tv_store_name"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:gravity="center"
android:background="@android:color/white"
android:drawableLeft="@drawable/shop_ico"
android:drawablePadding="10dp"
android:text="第八号当铺" />
</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="horizontal"
android:padding="20dp">
<!--android:focusable="false"-->
<CheckBox
android:layout_weight="1"
android:id="@+id/goods_checkbox"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center" />
<LinearLayout
android:layout_weight="5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/tv_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="三只松鼠" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/img_goods_logo"
android:background="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/tv_price"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="¥20" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_color"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="颜色:黑色" />
<TextView
android:id="@+id/tv_size"
android:text="尺寸:"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<com.example.fanjie.monthmock.view.AddDeleteView
android:id="@+id/adv_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</com.example.fanjie.monthmock.view.AddDeleteView>
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:id="@+id/img_del"
android:layout_width="30dp"
android:layout_height="30dp"
android:background="@drawable/rublish"
android:layout_gravity="center"
android:clickable="true" />
</LinearLayout>
数据实体类
public class GoodsBean {
private String msg;
private String code;
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 List<DataBean> getData() {
return data;
}
public void setData(List<DataBean> data) {
this.data = data;
}
public static class DataBean {
private String sellerName;
private String sellerid;
private List<ListBean> list;
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 {
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;
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;
}
}
}
}
获取p层
private void addData() {
presenter = new GoodsPresenter();
presenter.attachView(this);
presenter.getGoods();
}
得到回调接口,设置适配器数据
@Override
public void success(GoodsBean goodsBean) {
ArrayList<String> yiji = new ArrayList<>();
List<GoodsBean.DataBean> data = goodsBean.getData();
for (int i=0;i<data.size();i++){
//一级列表的集合
GoodsBean.DataBean dataBean = data.get(i);
String sellerName = dataBean.getSellerName();
yiji.add(sellerName);
child.add(dataBean.getList());
}
adapter = new MyExpandableAdapter(this, yiji,child);
expandableListView.setAdapter(adapter);
expandableListView.setGroupIndicator(null);
//设置展开
for (int i=0;i<yiji.size();i++){
expandableListView.expandGroup(i);
}
}
@Override
public void failed(Exception e) {
}
二级列表适配器
public class MyExpandableAdapter extends BaseExpandableListAdapter{
private Context context;
private List<String> list;
List<List<GoodsBean.DataBean.ListBean>> child;
// private List<ChildBean> list2;
public MyExpandableAdapter(Context context, List<String> list,List<List<GoodsBean.DataBean.ListBean>> child) {
this.context = context;
this.list = list;
this.child=child;
}
@Override
public int getGroupCount() {
return list.size();
}
@Override
public int getChildrenCount(int i) {
return child.get(i).size();
}
@Override
public Object getGroup(int i) {
return list.get(i);
}
@Override
public Object getChild(int i, int i1) {
return child.get(i1);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return false;
}
class ViewHolder{
private CheckBox store_chekbox;
private TextView tv_store_name;
}
@Override
public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
ViewHolder vh;
if (view==null){
view = View.inflate(context, R.layout.item_store, null);
vh=new ViewHolder();
vh.store_chekbox=(CheckBox)view.findViewById(R.id.store_chekbox);
vh.tv_store_name=(TextView)view.findViewById(R.id.tv_store_name);
view.setTag(vh);
}else {
vh= (ViewHolder) view.getTag();
}
//设置数据
// Log.i("TAG",list2.get(i).getTitle()+"ssss");
vh.tv_store_name.setText(list.get(i));
return view;
}
class ViewHolder2{
private CheckBox goods_checkbox;
private TextView tv_title;
private ImageView img_goods_logo;
private TextView tv_price;
private AddDeleteView adv_num;
}
@Override
public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
ViewHolder2 vh;
if (view==null){
view = View.inflate(context, R.layout.item_goods, null);
vh=new ViewHolder2();
vh.goods_checkbox=(CheckBox)view.findViewById(R.id.goods_checkbox);
vh.tv_title=(TextView)view.findViewById(R.id.tv_title);
vh.tv_price=(TextView)view.findViewById(R.id.tv_price);
vh.img_goods_logo=(ImageView)view.findViewById(R.id.img_goods_logo);
vh.adv_num=(AddDeleteView)view.findViewById(R.id.adv_num);
view.setTag(vh);
}else {
vh= (ViewHolder2) view.getTag();
}
//设置数据
vh.tv_title.setText(child.get(i).get(i1).getTitle());
vh.tv_price.setText("¥"+child.get(i).get(i1).getPrice());
String images = child.get(i).get(i1).getImages();
String[] split = images.split("\\|");
Glide.with(context).load(split[0]).into(vh.img_goods_logo);
// Log.i("TAGs",list2.get(i1).toString()+"wwwwwwwwwwwww");
return view;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return true;
}
}