购物车的适配器:
public class ShoppingCartAdapter extends BaseAdapter { private Context context; private List<Test> loans; private LayoutInflater inflater; private static HashMap<Integer, Boolean> isSelected; private static HashMap<Integer, Integer> numbers; private Handler handler; int num;// 商品数量 static class ViewHolder { // 自定义控件集合 public CheckBox ck_select; public ImageView pic_goods; public TextView id_goods; public TextView integral_goods; public LinearLayout layout; } /** * 实例化Adapter * * @param context * @param data */ public ShoppingCartAdapter(Context context, Handler handler, List<Test> data) { this.context = context; this.inflater = LayoutInflater.from(context); this.loans = data; this.handler = handler; isSelected = new HashMap<Integer, Boolean>(); numbers = new HashMap<Integer, Integer>(); initDate(); } private void initDate() { for (int i = 0; i < loans.size(); i++) { getIsSelected().put(i, false); } } @Override public int getCount() { return loans.size(); } @Override public Object getItem(int position) { return loans.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { // 自定义视图 ViewHolder itemView = null; if (convertView == null) { // 获取list_item布局文件的视图 itemView = new ViewHolder(); convertView = inflater.inflate(R.layout.item_gouwu, null); // 获取控件对象 itemView.ck_select = (CheckBox) convertView .findViewById(R.id.ck_select); itemView.pic_goods = (ImageView) convertView .findViewById(R.id.pic_goods); itemView.id_goods = (TextView) convertView .findViewById(R.id.id_goods); itemView.integral_goods = (TextView) convertView .findViewById(R.id.integral_goods); convertView.setTag(itemView); } else { itemView = (ViewHolder) convertView.getTag(); } init(itemView, position); itemView.ck_select.setChecked(getIsSelected().get(position)); if (getIsSelected().get(position)) { itemView.ck_select.setChecked(true); } else { itemView.ck_select.setChecked(false); } Test test = loans.get(position); itemView.integral_goods.setText((CharSequence) test.getIntegral()); itemView.pic_goods.setImageResource(R.drawable.ic_launcher); return convertView; } private void init(final ViewHolder itemView, final int position) { itemView.ck_select .setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { isSelected.put(position, true); getIsSelected().put(position, isChecked); itemView.ck_select.setChecked(getIsSelected().get( position)); handler.sendMessage(handler.obtainMessage(10, getTotalPrice())); Iterator iterator = isSelected.entrySet().iterator(); List<Boolean> array = new ArrayList<Boolean>(); while (iterator.hasNext()) { HashMap.Entry entry = (HashMap.Entry) iterator .next(); Integer key = (Integer) entry.getKey(); Boolean val = (Boolean) entry.getValue(); array.add(val); } handler.sendMessage(handler.obtainMessage(11, array)); } }); } /** * 计算选中商品的积分 * * @return 返回需要付费的总积分 */ private float getTotalPrice() { Test bean = null; float totalPrice = 0; for (int i = 0; i < loans.size(); i++) { bean = loans.get(i); if (ShoppingCartAdapter.getIsSelected().get(i)) { totalPrice +=Integer.valueOf(bean.getIntegral()); } } return totalPrice; } public static HashMap<Integer, Boolean> getIsSelected() { return isSelected; } public static void setIsSelected(HashMap<Integer, Boolean> isSelected) { ShoppingCartAdapter.isSelected = isSelected; } }