购物车java代码

//自定义MyExpandableListView

public class MyExpandableListView extends ExpandableListView {


    public MyExpandableListView(Context context, AttributeSet attrs) {
        super(context,attrs);
    }


    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int i = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);

        super.onMeasure(widthMeasureSpec, i);
    }
}

//mianActivity

public class Main2Activity extends AppCompatActivity  implements MianView {
    private ExpandableListView exlistview;
    private MianPersenterImpl mianPersenter;
    private CheckBox checkBox;


    private List<ShowBean.DataBean> data;
    private TextView sum;
    private TextView checked;
    private ImageView image_back;
    private AdaPter adaPter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);

        sum = findViewById(R.id.sum);
        checked = findViewById(R.id.checked);
        exlistview = findViewById(R.id.exlistview);
        image_back = findViewById(R.id.image_back);
        checkBox = findViewById(R.id.check);

        checkBox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                boolean allCheak = adaPter.isAllCheak();
                adaPter.changeAll(!allCheak);
                adaPter.notifyDataSetChanged();
                refreshAll();
            }
        });





        mianPersenter = new MianPersenterImpl(this);
        mianPersenter.getData();


        image_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(Main2Activity.this, SouActivity.class);

                startActivity(intent);


            }
        });

    }
    @Override
    public void Success(ShowBean showBean) {
        data= showBean.getData();

        if (data!=null){
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    adaPter = new AdaPter(Main2Activity.this,data);
                    exlistview.setAdapter(adaPter);


                    int count = exlistview.getCount();

                    for (int i=0; i<count; i++){
                        exlistview.expandGroup(i);

                    }

                    adaPter.setCallback(new AdaPter.Callback() {
                        @Override
                        public void GoodCartsLitenster(int countyMoney, int countsNum) {
                            sum.setText("¥:"+countyMoney);
                            checked.setText("已选("+countsNum+")");
                        }
                    });
                }
            });

        }

    }

    @Override
    public void Error(int code) {

    }

    public void refreshAll(){
        boolean allCheak = adaPter.isAllCheak();
        checkBox.setChecked(allCheak);
    }

adapter

public class AdaPter extends BaseExpandableListAdapter {


    private Context context;
    private List<ShowBean.DataBean> list;
    private ViewHolderOne holderOne;
    private ViewHolderTwo holderTwo;

    //选中的货物的钱数
    private int countsMoney ;
    //选中的货物的个数
    private int countsNum ;
     private Callback callback;

    public void setCallback(Callback callback) {
        this.callback = callback;
    }


    public AdaPter(Context context, List<ShowBean.DataBean> list, Callback callback) {
        this.context = context;
        this.list = list;
        this.callback = callback;
    }

    public AdaPter(Context context, List<ShowBean.DataBean> list) {
        this.context = context;
        this.list = list;
    }


    @Override
    public void notifyDataSetChanged() {
        super.notifyDataSetChanged();
        getcountsMoneyAndNum();
        callback.GoodCartsLitenster(countsMoney,countsNum);
    }
    public void setIsSelect(boolean isSelect){
        for(ShowBean.DataBean li:list){
            List<ShowBean.DataBean.ListBean> list1= li.getList();
            for(ShowBean.DataBean.ListBean l:list1){
                if(isSelect){
                    l.setSelected(0);
                }else {
                    l.setSelected(1);
                }
            }
        }
        notifyDataSetChanged();

    }
    private void getcountsMoneyAndNum() {
        countsMoney=0;
        countsNum=0;
        if(list==null){
            return;
        }
        for(ShowBean.DataBean li:list){
            List<ShowBean.DataBean.ListBean> list1= li.getList();
            for(ShowBean.DataBean.ListBean l:list1){
                if(l.getSelected()==1){
                    countsMoney+=(l.getNum()*l.getBargainPrice());
                    countsNum+=l.getNum();
                }
            }
        }
    }

    @Override
    public int getGroupCount() {
        return list.size();
    }

    @Override
    public int getChildrenCount(int i) {
        return list.get(i).getList().size();
    }

    @Override
    public Object getGroup(int i) {
        return list.get(i);
    }

    @Override
    public Object getChild(int i, int i1) {
        return list.get(i).getList().get(i1);
    }

    @Override
    public long getGroupId(int i) {
        return i+1;
    }

    @Override
    public long getChildId(int i, int i1) {
        return i1;
    }

    @Override
    public boolean hasStableIds() {
        return true;
    }

    @Override
    public View getGroupView(int i, boolean b, View view, ViewGroup viewGroup) {
      ViewHolderOne holderOne=null;
      if (view==null){
          holderOne = new ViewHolderOne();
          view=View.inflate(context,R.layout.parelayout,null);
          holderOne.parentTitle=view.findViewById(R.id.parent_title);
          view.setTag(holderOne);

      }else{
         holderOne= (ViewHolderOne) view.getTag();
      }

      holderOne.parentTitle.setText(list.get(i).getSellerName());


        return view;
    }



    @Override
    public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {


        ViewHolderTwo holderTwo=null;
        if (view==null){
            holderTwo = new ViewHolderTwo();
            view=View.inflate(context,R.layout.item,null);
            holderTwo.NowPrice=view.findViewById(R.id.Nowprice);
            holderTwo.OldPrice=view.findViewById(R.id.oldprice);
            holderTwo.sontitle=view.findViewById(R.id.sontitle);
            holderTwo.sonion=view.findViewById(R.id.sonion);
            holderTwo.add= view.findViewById(R.id.jia);
            holderTwo.contact=view.findViewById(R.id.content);
            holderTwo.jian=view.findViewById(R.id.jian);
            holderTwo.check=view.findViewById(R.id.soncheck);
            view.setTag(holderTwo);



        }else {

            holderTwo= (ViewHolderTwo) view.getTag();

        }

        holderTwo.sontitle.setText(this.list.get(i).getList().get(i1).getTitle());
        holderTwo.OldPrice.setText("¥"+ this.list.get(i).getList().get(i1).getBargainPrice());
        holderTwo.NowPrice.setText("¥"+ this.list.get(i).getList().get(i1).getPrice());
        holderTwo.contact.setText(list.get(i).getList().get(i1).getNum()+"");
        String str = this.list.get(i).getList().get(i1).getImages().split("\\|")[0];
        Glide.with(context).load(str).into(holderTwo.sonion);
        boolean allCheak = isAllCheak();
        holderTwo.check.setChecked(allCheak);
        holderTwo.add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            int num=    list.get(i).getList().get(i1).getNum();

            num++;

            list.get(i).getList().get(i1).setNum(num);

           notifyDataSetChanged();


            }
        });

        holderTwo.jian.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
              int num=  list.get(i).getList().get(i1).getNum();

              if (num>1){

                  num--;
              }else{

                  num=0;

              }

              list.get(i).getList().get(i1).setNum(num);
             notifyDataSetChanged();




            }
        });

                holderTwo.check.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int selected = list.get(i).getList().get(i1).getSelected();
                if(selected==0){
                    list.get(i).getList().get(i1).setSelected(1);
                }else if(selected==1){
                    list.get(i).getList().get(i1).setSelected(0);
                }
                notifyDataSetChanged();
            }
        });

        return view;



    }
    //全选调用的方法
    public boolean isAllCheak(){
        for (int i = 0; i < list.size(); i++) {
            List<ShowBean.DataBean.ListBean> list2 = this.list.get(i).getList();
            for (int j = 0; j < list2.size(); j++) {
                if (list2.get(j).getSelected() == 0){
                    return false;
                }
            }
        }

        return true;
    }

    public void changeAll(boolean b) {
        for (int i = 0; i < list.size(); i++) {
            List<ShowBean.DataBean.ListBean> list2 = list.get(i).getList();
            for (int j = 0; j < list2.size(); j++) {
                list2.get(j).setSelected(b ? 1 : 0);
                Log.e("TAG","调用到了");
            }
        }
    }

    @Override
    public boolean isChildSelectable(int i, int i1) {
        return true;
    }

    class ViewHolderOne{
        TextView parentTitle;


    }


    class ViewHolderTwo{
        TextView NowPrice;
        TextView OldPrice;
        TextView sontitle;
        ImageView sonion;
        CheckBox check;
        Button add;
        TextView contact;
        Button jian;

    }
        public interface Callback {
            void GoodCartsLitenster(int countyMoney, int countsNum);
        }

}

 

依赖

    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
    implementation 'com.google.code.gson:gson:2.8.2'
    implementation 'com.github.bumptech.glide:glide:4.6.1'

    implementation 'com.android.support:recyclerview-v7:27.1.1'

  
    implementation 'com.squareup.picasso:picasso:2.71828'

权限

    <uses-permission android:name="android.permission.INTERNET" />

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值