购物车MainActivity

本文介绍了一个基于Android的ExpandableListView实现全选功能的方法。通过自定义适配器来处理多级列表的选择状态,并更新界面上的价格和已选择店铺的数量。同时,通过监听全选按钮的状态来控制所有子项的选中情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.test.expandablelistview;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.ExpandableListView;
import android.widget.TextView;

import java.util.List;

import static android.R.id.list;

public class MainActivity extends AppCompatActivity {

private ExpandableListView listview;
private MyAdpater adpater;
private TextView checked_shop;
private TextView price;

List<Shangjia> shangjias;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);


  /*  //点击事件
    boolean isCheked = shangjias.get(0).getShangPinList().get(0).isCheked;
    shangjias.get(0).getShangPinList().get(0).setCheked(!isCheked);
    change();*/


    setContentView(R.layout.activity_main);
    listview = (ExpandableListView) findViewById(R.id.listview);
    adpater = new MyAdpater(this);
    listview.setAdapter(adpater);
    final CheckBox checkAll = (CheckBox) findViewById(R.id.checkAll);
    price = (TextView) findViewById(R.id.price);
    checked_shop = (TextView) findViewById(R.id.checked_shop);
    checkAll.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //设置商品全部选中
            adpater.checkAllShop(checkAll.isChecked());
            //计算选中的价格和数量
            String shopPrice = adpater.getShopPrice();
            //判断商品是否全部选中
            boolean b = adpater.selectAll();

            String[] split = shopPrice.split(",");
            price.setText(split[0]);
            checked_shop.setText(split[1]);
            checkAll.setChecked(b);
        }
    });
    adpater.getAdapterData(new MyAdpater.AdapterData() {
        @Override
        public void Data(View v, String str, boolean b) {
            String[] split = str.split(",");
            price.setText(split[0]);
            checked_shop.setText(split[1]);
            checkAll.setChecked(b);
        }
    });

    checkAll.setChecked(adpater.selectAll());
    adpater.notifyDataSetChanged();

}


/*//点击二级列表的时候调用这个方法
public void change() {

    //// TODO: 2017/9/21  去遍历这个商品,是否所有商品被选中
    boolean isAllShngpingChecked = false;
    Shangjia shangjia = shangjias.get(0);
    for (int i = 0; i < shangjia.getShangPinList().size(); i++) {

    }
    shangjia.setChcked(isAllShngpingChecked);


    //todo 去遍历所有商家
    boolean isAllShngjiaChecked = false;
    for (int i = 0; i < shangjias.size(); i++) {

    }

    //// TODO: 2017/9/21   根据isAllShngjiaChecked通知外边的那个checkbox改变状态

}

//点击二级列表的时候调用这个方法
public void dianjiYIjiLIbiao() {
    Shangjia shangjia = shangjias.get(0);
    boolean isChcked = shangjia.isChcked;

    //// TODO: 2017/9/21 遍历当前商家商品的状态
    List<ShangPin> shangPinList = shangjias.get(0).getShangPinList();
    for (int i = 0; i < shangPinList.size(); i++) {
        shangPinList.get(i).setCheked(!isChcked);
    }
    change();
}

//点击全选按钮
//// TODO: 2017/9/21  在activityd中有一个boolean值
boolean isAllCheckedActivity = false;

//根据isAllCheckedActivity  取非
//// TODO: 2017/9/21   区把商品的所有状态都变了之后 调用   change();

*/
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值