private List<SQLBean> list;
private CartAdapter cart;
private CheckBox checkall;
private TextView tvall;
private double sum=0;
@Override
public void onClick(View v) {
boolean flag=checkall.isChecked();
sum=0;
for (int i = 0; i <cart.getSelect().size(); i++) {
listbool.set(i, flag);
if(flag==false){
sum=0;
DecimalFormat format=new DecimalFormat("###.00");
tvall.setText( ""+ format.format(sum));
}else{
sum=sum+list.get(i).getPrice()*list.get(i).getCount();
DecimalFormat format=new DecimalFormat("###.00");
tvall.setText( ""+ format.format(sum));
}
}
cart.notifyDataSetChanged();
}
class CartAdapter extends BaseAdapter {
public CartAdapter() {
for(int i=0;i<list.size();i++){
listbool.add(false);
}
}
public LinkedList<Boolean> getSelect(){
return listbool;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHoder vh;
if (convertView == null) {
vh = new ViewHoder();
convertView = View.inflate(getActivity(), R.layout.cart_item, null);
vh.che = (CheckBox) convertView.findViewById(R.id.checkBox_a);
vh.img = (ImageView) convertView.findViewById(R.id.image_cart_);
vh.tvN = (TextView) convertView.findViewById(R.id.tv_cart_goods_name);
vh.tvC = (TextView) convertView.findViewById(R.id.tv_cart_count);
vh.tvP = (TextView) convertView.findViewById(R.id.tv_cart_price);
convertView.setTag(vh);
} else {
vh = (ViewHoder) convertView.getTag();
}
ImageLoader.getInstance().displayImage(list.get(position).getPath(), vh.img);
vh.tvC.setText("数量:" + list.get(position).getCount() + "");
vh.tvN.setText(list.get(position).getName() + "");
vh.tvP.setText("¥" + list.get(position).getPrice() + "");
vh.che.setChecked(listbool.get(position));
vh.che.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(vh.che.isChecked()==false){
//点中的时候改成相反的值
listbool.set(position, ! listbool.get(position));
sum=sum-list.get(position).getPrice()*list.get(position).getCount();
DecimalFormat format=new DecimalFormat("###.00");
tvall.setText( ""+ format.format(sum));
}else{
//点中的时候改成相反的值
listbool.set(position, ! listbool.get(position));
sum=sum+list.get(position).getPrice()*list.get(position).getCount();
DecimalFormat format=new DecimalFormat("###.00");
tvall.setText( ""+ format.format(sum));
}
if(listbool.contains(false)){
checkall.setChecked(false);
}else{
checkall.setChecked(true);
}
notifyDataSetChanged();
}
});
return convertView;
}
class ViewHoder {
ImageView img;
CheckBox che;
TextView tvN, tvP, tvC;
}
}