//adapter
package adapter;
import android.content.Context;
import android.media.Image;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;
import com.example.w.gouwuche2.MainActivity;
import com.example.w.gouwuche2.R;
import java.util.List;
import bean.Listbean;
public class MyAdapter extends BaseExpandableListAdapter {
private Context context;
private List<Listbean.DataBean> dataBeans;
private groupViewHolder holder;
private childViewHolder holder1;
public MyAdapter(Context context, List<Listbean.DataBean> dataBeans) {
this.context = context;
this.dataBeans = dataBeans;
}
@Override
public int getGroupCount() {
return dataBeans.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return dataBeans.get(groupPosition).getList().size();
}
@Override
public Object getGroup(int groupPosition) {
return dataBeans.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return dataBeans.get(groupPosition).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 true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
groupViewHolder holder=null;
if (convertView == null) {
holder = new groupViewHolder();
convertView = View.inflate(context, R.layout.item_layout, null);
holder.text_name = convertView.findViewById(R.id.text_view);
convertView.setTag(holder);
} else {
holder= (groupViewHolder) convertView.getTag();
}
holder.text_name.setText(dataBeans.get(groupPosition).getSellerName());
return convertView;
}
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
childViewHolder holder1=null;
if (convertView == null) {
holder1 = new childViewHolder();
convertView = View.inflate(context, R.layout.item_layout1, null);
holder1.image = convertView.findViewById(R.id.image);
holder1.price = convertView.findViewById(R.id.text_price);
holder1.title = convertView.findViewById(R.id.text_title);
holder1.jia=convertView.findViewById(R.id.btn_jia);
holder1.jian=convertView.findViewById(R.id.btn_jian);
holder1.contact=convertView.findViewById(R.id.text_contact);
holder1.check=convertView.findViewById(R.id.check_box);
convertView.setTag(holder1);
} else {
holder1= (childViewHolder) convertView.getTag();
}
holder1.price.setText(dataBeans.get(groupPosition).getList().get(childPosition).getPrice());
holder1.title.setText(dataBeans.get(groupPosition).getList().get(childPosition).getTitle());
holder1.contact.setText(dataBeans.get(groupPosition).getList().get(childPosition).getNum()+"");
Glide.with(context).load(dataBeans.get(groupPosition).getList().get(childPosition).getImages().split("\\|")[0]).into(holder1.image);
holder1.jia.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int num = dataBeans.get(groupPosition).getList().get(childPosition).getNum();
num++;
dataBeans.get(groupPosition).getList().get(childPosition).setNum(num);
notifyDataSetChanged();
}
});
holder1.jian.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int num = dataBeans.get(groupPosition).getList().get(childPosition).getNum();
if (num > 1) {
num--;
} else {
num=0;
}
dataBeans.get(groupPosition).getList().get(childPosition).setNum(num);
notifyDataSetChanged();
}
});
if (dataBeans.get(groupPosition).getList().get(childPosition).getSelected()==0) {
holder1.check.setSelected(false);
} else if (dataBeans.get(groupPosition).getList().get(childPosition).getSelected()==1) {
holder1.check.setSelected(true);
}
holder1.check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int selected = dataBeans.get(groupPosition).getList().get(childPosition).getSelected();
if (selected==0) {
dataBeans.get(groupPosition).getList().get(childPosition).setSelected(1);
} else if (selected==1) {
dataBeans.get(groupPosition).getList().get(childPosition).setSelected(0);
}
notifyDataSetChanged();
}
});
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
class groupViewHolder{
TextView text_name;
}
class childViewHolder{
CheckBox check;
ImageView image;
TextView title;
TextView price;
Button jia;
TextView contact;
Button jian;
}
}
2.//画方块
<?xml version="1.0" encoding="utf-8"?>
<shape android:shape="rectangle" xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:color="#000000" android:width="0.1dp"/>
<size android:width="25dp" android:height="15dp"/>
</shape>
3.//MyExpanListView
package com.example.w.gouwuche2.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ExpandableListView;
public class MyExpanview extends ExpandableListView {
public MyExpanview(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int spec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, spec);
}
}
//展开
int count = my_expan_listview.getCount(); for (int i=0;i<count;i++) { my_expan_listview.expandGroup(i); }