//住xml
<?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.zhang.zhanglichao1511r0423.MainActivity"> <ExpandableListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ExpandableListView" android:groupIndicator="@null" android:layout_weight="1" ></ExpandableListView> <LinearLayout android:layout_width="match_parent" android:layout_height="30dp" android:orientation="horizontal" > <CheckBox android:layout_width="wrap_content" android:layout_height="match_parent" android:id="@+id/quan_bu" android:text="全选" /> <TextView android:id="@+id/jaiqian" android:gravity="center" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="0¥" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="去结算" /> </LinearLayout> </LinearLayout>//父xml
<?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="match_parent"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/chx_fu" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text_fu" /> </LinearLayout>//子xml
<?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="match_parent"> <CheckBox android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/chx_zi" /> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:id="@+id/img_zi" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text_zi" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text2_zi" /> <com.zhang.zhanglichao1511r0423.Jiajian android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/jiajian" ></com.zhang.zhanglichao1511r0423.Jiajian> </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:orientation="horizontal" android:layout_height="match_parent"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+" android:id="@+id/jia_jia" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/text_jiajian" android:text="1" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-" android:id="@+id/jian_jian" /> </LinearLayout>
/** * 组合控件类 * author:Created by WangZhiQiang on 2018/4/23. */ public class Jiajian extends LinearLayout { public Jiajian(Context context) { this(context,null); } public Jiajian(Context context, @Nullable AttributeSet attrs) { this(context, attrs,0); } public Jiajian(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); View inflate = LayoutInflater.from(context).inflate(R.layout.jiajian, this, true); } }
/** * MainActivity */ public class MainActivity extends AppCompatActivity implements IView<GetCart>{ private ExpandableListView viewById; private Mydaapter mydaapter; CheckBox quan_bu; TextView jaiqian; List<GetCart.DataBean> data=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewById = findViewById(R.id.ExpandableListView); quan_bu = findViewById(R.id.quan_bu); jaiqian = findViewById(R.id.jaiqian); shuju(); EventBus.getDefault().register(this); } public void shuju(){ Mypresenter mypresenter = new Mypresenter(); HashMap<String, String> map = new HashMap<>(); map.put("uid","71"); mypresenter.gerCart(new MyModel(),this,map); } @Subscribe(threadMode = ThreadMode.MAIN,sticky = true) public void fff(Boolean f){ if (f){ jisuan(); } } public void jisuan(){ int zong = 0; for (GetCart.DataBean datum : data) { List<GetCart.DataBean.ListBean> list = datum.getList(); for (GetCart.DataBean.ListBean listBean : list) { int shu = listBean.getShu(); int price =(int) listBean.getPrice(); boolean flas = listBean.getFlas(); if (flas) { if (shu<=0){ zong+= 1 * price; }else { zong += shu * price; } } } } jaiqian.setText("价钱:"+zong+"¥"); } //成功 @Override public void onSuccess(GetCart getCart) { List<GetCart.DataBean> ll = getCart.getData(); data.addAll(ll); mydaapter = new Mydaapter(this, data); viewById.setAdapter(mydaapter); //展开列表 for(int i = 0; i < mydaapter.getGroupCount(); i++){ viewById.expandGroup(i); } quxuan(data); } private void quxuan(final List<GetCart.DataBean> data) { quan_bu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean checked = quan_bu.isChecked(); for (GetCart.DataBean datum : data) { datum.setFal(checked); List<GetCart.DataBean.ListBean> list = datum.getList(); for (GetCart.DataBean.ListBean listBean : list) { listBean.setFlas(checked); } } mydaapter.notifyDataSetChanged(); jisuan(); } }); } //失败 @Override public void onError(String ss) { Toast.makeText(this,ss,Toast.LENGTH_SHORT).show(); } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } }
/** * 适配器 * author:Created by WangZhiQiang on 2018/4/23. */ public class Mydaapter extends BaseExpandableListAdapter { Context context; List<GetCart.DataBean> list; int iii=1; public Mydaapter(Context context, List<GetCart.DataBean> list) { this.context = context; this.list = list; } @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 false; } @Override public View getGroupView(final int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (convertView==null){ convertView=View.inflate(context,R.layout.fu_view,null); } TextView viewById = convertView.findViewById(R.id.text_fu); final CheckBox viewById1 = convertView.findViewById(R.id.chx_fu); viewById.setText(list.get(groupPosition).getSellerName()); boolean fal = list.get(groupPosition).isFal(); viewById1.setChecked(fal); viewById1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { list.get(groupPosition).setFal(viewById1.isChecked()); notifyDataSetChanged(); EventBus.getDefault().postSticky(true); } }); return convertView; } @Override public View getChildView(final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView==null){ convertView=View.inflate(context,R.layout.zi_view,null); } final CheckBox chx = convertView.findViewById(R.id.chx_zi); ImageView img = convertView.findViewById(R.id.img_zi); TextView text = convertView.findViewById(R.id.text_zi); TextView text2 = convertView.findViewById(R.id.text2_zi); Jiajian jiajian = convertView.findViewById(R.id.jiajian); final List<GetCart.DataBean.ListBean> data = this.list.get(groupPosition).getList(); String images = data.get(childPosition).getImages(); String[] split = images.split(".jpg"); Glide.with(context).load(split[0]+".jpg").into(img); text.setText(data.get(childPosition).getTitle()); text2.setText(data.get(childPosition).getPscid()+""); final boolean fal = list.get(groupPosition).getFal(); if (fal){ data.get(childPosition).setFlas(fal); } chx.setChecked(data.get(childPosition).getFlas()); chx.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { boolean checked = chx.isChecked(); data.get(childPosition).setFlas(checked); if (!checked) { list.get(groupPosition).setFal(false); } notifyDataSetChanged(); EventBus.getDefault().postSticky(true); } }); Jiajian jj = convertView.findViewById(R.id.jiajian); Button jia_jia = jj.findViewById(R.id.jia_jia); Button jian_jian = jj.findViewById(R.id.jian_jian); final TextView text_jiajian = jj.findViewById(R.id.text_jiajian); jia_jia.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { iii++; data.get(childPosition).setShu(iii); text_jiajian.setText(iii+""); EventBus.getDefault().postSticky(true); } }); jian_jian.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { iii--; if (iii<=0){ iii = 1; } data.get(childPosition).setShu(iii); text_jiajian.setText(iii+""); EventBus.getDefault().postSticky(true); } }); return convertView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return false; } }