Android购物车(一) 多级列表实现布局

此中只有布局哦

一。 首先是布局页面 activity.xml
购物车主体布局



    
    
    

    
        

        
    

在父级的布局中(商家cart_group_item.xml)只有一个Checkbox

 

在子布局中(商品 cart_item.xml)



    
    
    
        
        
    

    
    

还有一个自定义布局 用于商品的加减 两个button 一个textview



    

AddSubLayout.java

public class AddSubLayout extends LinearLayout implements View.OnClickListener {

    private Button butjian;
    private Button butjia;
    private TextView tvnum;
    private AddSubListener addSubListener;

    public AddSubLayout(Context context) {
        super(context);
        initView();
    }

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

    public AddSubLayout(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        initView();
    }

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public AddSubLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);
        initView();
    }

    private void initView() {
        //加载layout 布局 第三个参数viewGroup一定写成this
        View view = View.inflate(getContext(), R.layout.car_add_sub_layout, this);
        butjian = findViewById(R.id.but_jian);
        butjia = findViewById(R.id.but_jia);
        tvnum = findViewById(R.id.tv_num);
        butjia.setOnClickListener(this);
        butjian.setOnClickListener(this);
    }

    @Override
    protected void onLayout(boolean changed, int l, int t, int r, int b) {
        super.onLayout(changed, l, t, r, b);
        int width = r - 1;//getweight
        int height = b - t;//getheight

    }

    @Override
    public void onClick(View v) {
        int number = Integer.parseInt(tvnum.getText().toString());
        switch (v.getId())
        {
            case R.id.but_jian:
                if (number == 0)
                {
                    Toast.makeText(getContext(), "数量不能小于0", Toast.LENGTH_SHORT).show();
                    return;
                }
             number--;
             tvnum.setText(number+"");
             break;
             case R.id.but_jia:
                 number++;
                 tvnum.setText(number+"");
                 break;
        }

        if (addSubListener != null)
        {
            addSubListener.addSub(number);
        }
    }
    public void setCount(int count){
        tvnum.setText(count+"");
    }

    public void setAddSubListener(AddSubListener addSubListener) {
        this.addSubListener = addSubListener;
    }

    public interface AddSubListener{
        void addSub(int count);
    }
}

给多选框 设置一个shape




    


你可能感兴趣的:(Android购物车(一) 多级列表实现布局)