用在适配器:
private OrderItemClickListener itemClickListener;
public OrderFromAdapter(ArrayList<Goods> list,Context context,OrderItemClickListener itemClickListener){ this.context = context; this.list=list; this.itemClickListener = itemClickListener; inflater=LayoutInflater.from(context); isSelected = new HashMap<Integer, Boolean>();//选中的复选框 initDate(); }
主界面:
public class SPMainActivity extends SPBaseActivity implements AdapterView.OnItemClickListener, OrderFromAdapter.OrderItemClickListener {
adapter = new OrderFromAdapter(listOrder, SPMainActivity.this,this);
public interface OrderItemClickListener{ public void itemClickedSelect(int position, ViewHolder viewHolder); public void itemNumClick(int position, ViewHolder viewHolder); } public class MyOnClickListner implements View.OnClickListener { int position; ViewHolder viewHolder; public MyOnClickListner(int position, ViewHolder viewHolder) { this.position = position; this.viewHolder = viewHolder; } @Override public void onClick(View v) { switch (v.getId()){ case R.id.number: if(itemClickListener!=null){ itemClickListener.itemNumClick(position,viewHolder); } break; case R.id.check_option: if(itemClickListener!=null){ itemClickListener.itemClickedSelect(position,viewHolder); } break; } } }
@Override public void itemClickedSelect(int position, OrderFromAdapter.ViewHolder viewHolder) { // viewHolder.checkBox.toggle();//切换checkBox的可见状态 OrderFromAdapter.getIsSelected().put(position, viewHolder.checkBox.isChecked()); // 调整选定条目 if (viewHolder.checkBox.isChecked() == true) { checkNum++; } else { checkNum--; } if (checkNum == 0) {//清空为0时不显示数字0 left_xiaokuohao.setVisibility(View.INVISIBLE); right_xiaokuohao.setVisibility(View.INVISIBLE); clearNumber.setText(""); } else { left_xiaokuohao.setVisibility(View.VISIBLE); right_xiaokuohao.setVisibility(View.VISIBLE); clearNumber.setText("" + checkNum); } } @Override public void itemNumClick(int position, OrderFromAdapter.ViewHolder viewHolder) { if(!listOrder.get(position).isSH()){ showNum(position); } }