public class MyExpandAdapter extends BaseExpandableListAdapter {
private List<CartBean.DataBean> list;
private Context context;
public MyExpandAdapter(Context context) {
list = new ArrayList<>();
this.context = context;
}
public void add(List<CartBean.DataBean> list) {
this.list.addAll(list);
notifyDataSetChanged();
}
public void clear() {
list.clear();
notifyDataSetChanged();
}
@Override
public int getGroupCount() {
return list.size();
}
@Override
public int getChildrenCount(int groupPosition) {
return list.get(groupPosition).getList().size();
}
@Override
public Object getGroup(int groupPosition) {
return list.get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return list.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;
}
private static final String TAG = "MyExpandAdapter";
@Override
public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
// View inflate = LayoutInflater.from(context).inflate(R.layout.cart_group, parent, false);
View inflate = View.inflate(context, R.layout.cart_group, null);
CheckBox checkBox = inflate.findViewById(R.id.grop_box);
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onCartListener != null) {
onCartListener.onGroupChecked(groupPosition);
}
}
});
checkBox.setChecked(groupIsSlected(groupPosition));
TextView textView = inflate.findViewById(R.id.grop_title);
textView.setText(list.get(groupPosition).getSellerName());
return inflate;
}
@Override
public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View inflate = View.inflate(context, R.layout.child_recycle, null);
final List<CartBean.DataBean.ListBean> childlist = this.list.get(groupPosition).getList();
//长按删除
inflate.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (onCartListener!=null){
onCartListener.onDelete(groupPosition,childPosition,""+childlist.get(childPosition).getPid());
}
return true;
}
});
CheckBox checkBox = inflate.findViewById(R.id.child_recycle_box);
checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onCartListener != null) {
onCartListener.onGoodChecked(groupPosition, childPosition);
}
}
});
checkBox.setChecked(childlist.get(childPosition).getSelected()==1);
SimpleDraweeView image = inflate.findViewById(R.id.child_recycle_simple);
TextView title = inflate.findViewById(R.id.child_recycle_textView);
TextView price = inflate.findViewById(R.id.child_recycle_price);
Add add = inflate.findViewById(R.id.child_add);
//设置数量
add.setValue(list.get(groupPosition).getList().get(childPosition).getNum());
add.setMaxValue(100);
add.setMaxValue(0);
add.setButtonClick(new Add.onButtonClick() {
@Override
public void addClick(View view, int value) {
Log.d(TAG, "addClick: "+value);
if (onCartListener!=null){
CartBean.DataBean.ListBean listBean = list.get(groupPosition).getList().get(childPosition);
onCartListener.onGoodNumChange(listBean.getSellerid(),listBean.getPid(),value,listBean.getSelected()+"",groupPosition,childPosition);
}
}
@Override
public void subClick(View view, int value) {
Log.d(TAG, "addClick: "+value);
if (onCartListener!=null){
CartBean.DataBean.ListBean listBean = list.get(groupPosition).getList().get(childPosition);
onCartListener.onGoodNumChange(listBean.getSellerid(),listBean.getPid(),value,listBean.getSelected()+"",groupPosition,childPosition);
}
}
});
String images = childlist.get(childPosition).getImages();
Log.d("xxx", "getChildView: "+images);
String s= images.split("//|")[0];
Uri parse = Uri.parse(s);
image.setImageURI(parse);
title.setText(childlist.get(childPosition).getTitle());
price.setText(childlist.get(childPosition).getBargainPrice() + "");
return inflate;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
//判断总数
public int getSum() {
int sum = 0;
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.get(i).getList().size(); j++) {
int selected = list.get(i).getList().get(j).getSelected();
//如果没有选中 返回false
if (selected == 1) {
int num = list.get(i).getList().get(j).getNum();
sum = sum + num;
}
}
}
return sum;
}
//判断总价
public float getTotalPrice() {
float price = 0;
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.get(i).getList().size(); j++) {
int selected = list.get(i).getList().get(j).getSelected();
//如果没有选中 返回false
if (selected == 1) {
int num = list.get(i).getList().get(j).getNum();
int bargainPrice = list.get(i).getList().get(j).getBargainPrice();
price += (float) (num * bargainPrice);
}
}
}
return price;
}
//改变单个父条目是否选中
public void setGroupSlected(int groupId, boolean check) {
int size = list.get(groupId).getList().size();
for (int i = 0; i < size; i++) {
list.get(groupId).getList().get(i).setSelected(check ? 1 : 0);
}
}
//改变单个子条目是否选中
public void setGroupAndChildSlected(int groupId, int childId) {
// TODO: 2018/8/23 ????
List<CartBean.DataBean.ListBean> beans = this.list.get(groupId).getList();
this.list.get(groupId).getList().get(childId).setSelected(beans.get(childId).getSelected()==0? 1 : 0);
}
//改变数量
public void setNumber1(int groupId, int childId, int num) {
Log.d(TAG, "setNumber1: "+num);
list.get(groupId).getList().get(childId).setNum(num);
}
//删除
public void Removechild(int groupId, int childId) {
list.get(groupId).getList().remove(childId);
}
//判断父条目是否为0
public void setNumber(int groupId) {
List<CartBean.DataBean.ListBean> list = this.list.get(groupId).getList();
if (list.size() == 0) {
list.remove(groupId);
}
}
//改变所有条目状态
public void setAllSlected(boolean check) {
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.get(i).getList().size(); j++) {
list.get(i).getList().get(j).setSelected(check ? 1 : 0);
}
}
}
//判断所有条目
public boolean ALLgroupIsSlected() {
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < list.get(i).getList().size(); j++) {
int selected = list.get(i).getList().get(j).getSelected();
//如果没有选中 返回false
if (selected == 0) {
return false;
}
}
}
return true;
}
//判断父条目中有没有选中的子条目
public boolean groupIsSlected(int groupId) {
for (int j = 0; j < list.get(groupId).getList().size(); j++) {
int selected = list.get(groupId).getList().get(j).getSelected();
//如果没有选中 返回false
if (selected == 0) {
return false;
}
}
return true;
}
onCartListener onCartListener;
public void setOnCartListener(MyExpandAdapter.onCartListener onCartListener) {
this.onCartListener = onCartListener;
}
public interface onCartListener {
void onGroupChecked(int groupId);
void onGoodChecked(int groupId, int childId);
void onGoodNumChange(int sellerid, int pid, int num, String selected, int groupId, int childId);
void onDelete(int groupId, int childId, String pid);
}
}
购物车适配器
最新推荐文章于 2021-03-16 16:22:56 发布