Activity里
//避免焦点强占
mainCk.setOnCheckedChangeListener(null);
mainCk.setOnClickListener(this);
myBusinessAdapter.setOnBusinessClickListener(new MyBusinessAdapter.onBusinessClickListener() {
@Override
public void onCallBack() {
boolean b=true;
for (int i = 0; i <businesslist.size() ; i++) {
boolean businessCheck = businesslist.get(i).getBusinessCheck();
b=b&businessCheck;
for (int j = 0; j <businesslist.get(i).getList().size() ; j++) {
boolean goodsCheck = businesslist.get(i).getList().get(j).getGoodsCheck();
b=b&goodsCheck;
}
}
mainCk.setChecked(b);
totalCount();
}
});
@Override
public void onClick(View v) {
//全选
for (int i = 0; i <businesslist.size() ; i++) {
businesslist.get(i).setBusinessCheck(mainCk.isChecked());
for (int j = 0; j <businesslist.get(i).getList().size() ; j++) {
businesslist.get(i).getList().get(j).setGoodsCheck(mainCk.isChecked());
}
}
//刷新
myBusinessAdapter.notifyDataSetChanged();
totalCount();
}
//计算总价
public void totalCount(){
double b=0;
for (int i = 0; i <businesslist.size() ; i++) {
for (int j = 0; j <businesslist.get(i).getList().size() ; j++) {
if (businesslist.get(i).getList().get(j).getGoodsCheck()){
double price = businesslist.get(i).getList().get(j).getPrice();
int number = businesslist.get(i).getList().get(j).getDefaultnumber();
double v = number * price;
b+=v;
}
}
}
mainText.setText("总价是:¥:"+b);
}
商家的适配器
接口回调
onBusinessClickListener onbusinessClickListener;
public interface onBusinessClickListener{
public void onCallBack();
}
public void setOnBusinessClickListener(onBusinessClickListener onbusinessClickListener){
this.onbusinessClickListener=onbusinessClickListener;
}
//设置商家标题
helper.setText(R.id.business_title,item.getSellerName());
businessView = helper.getView(R.id.business_recy);
//商品的
LinearLayoutManager manager=new LinearLayoutManager(mContext,LinearLayoutManager.VERTICAL,false);
businessView.setLayoutManager(manager);
myGoodsAdapter = new MyGoodsAdapter(R.layout.goods,item.getList());
businessView.setAdapter(myGoodsAdapter);
//避免焦点抢占
//全选的
final CheckBox businessCk= helper.getView(R.id.business_ck);
businessCk.setOnCheckedChangeListener(null);
businessCk.setChecked(item.getBusinessCheck());
//点击goods里取消外边全选
myGoodsAdapter.setOnGoodsClickListener(new MyGoodsAdapter.OnGoodsClickListener() {
@Override
public void onCallBack() {
boolean b=true;
for (int i = 0; i < item.getList().size(); i++) {
boolean goodsCheck = item.getList().get(i).getGoodsCheck();
b=b&goodsCheck;
}
businessCk.setChecked(b);
myGoodsAdapter.notifyDataSetChanged();
onbusinessClickListener.onCallBack();
}
});
//点击商家条目选中里面的
businessCk.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
for (int i = 0; i <item.getList().size() ; i++) {
item.getList().get(i).setGoodsCheck(businessCk.isChecked());
}
item.setBusinessCheck(businessCk.isChecked());
notifyDataSetChanged();
onbusinessClickListener.onCallBack();
}
});
商品的适配器
接口回调
OnGoodsClickListener ongoodsClickListener;
public void setOnGoodsClickListener(OnGoodsClickListener ongoodsClickListener){
this.ongoodsClickListener=ongoodsClickListener;
}
public interface OnGoodsClickListener{
public void onCallBack();
}
//设置标题 价格
helper.setText(R.id.goods_title, item.getTitle());
helper.setText(R.id.goods_price, "¥:" + item.getPrice());
ImageView goodsImg = helper.getView(R.id.goods_img);
final String imageString = item.getImages();
final String[] img = imageString.split("\\|");
Glide.with(mContext).load(img[0]).into(goodsImg);
//避免焦点强占
//不提成全局 会错位
final CheckBox goodsCheck = helper.getView(R.id.goods_ck);
goodsCheck.setOnCheckedChangeListener(null);
goodsCheck.setChecked(item.getGoodsCheck());
//点击商家条目选中里面的
goodsCheck.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
item.setGoodsCheck(isChecked);
ongoodsClickListener.onCallBack();
}
});
//加减器
CaView caView = helper.getView(R.id.ca);
caView.setonCallCalview(new CaView.OnCallCalview() {
@Override
public void add(int number) {
item.setDefaultnumber(number);
ongoodsClickListener.onCallBack();
}
@Override
public void jian(int number) {
item.setDefaultnumber(number);
ongoodsClickListener.onCallBack();
}
});
自定义view的加减器
继承 LinearLayout
方法里:
View footView = LayoutInflater.from(context).inflate(R.layout.ca_layout, this);
//数量
String stringnumber = ca_text.getText().toString();
int number = Integer.parseInt(stringnumber);
switch (v.getId()){
case R.id.ca_jian:
//减
number--;
if (number<0){
number=0;
ca_text.setText(String.valueOf(number));
}
ca_text.setText(String.valueOf(number));
oncallCalview.jian(number);
break;
case R.id.ca_add:
//加
number++;
ca_text.setText(String.valueOf(number));
oncallCalview.add(number);
break;
}
接口回调
OnCallCalview oncallCalview;
public void setonCallCalview(OnCallCalview oncallCalview){
this.oncallCalview=oncallCalview;
}
public interface OnCallCalview{
public void add(int number);
public void jian(int number);
}