此中只有布局哦
一。 首先是布局页面 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