最近在项目中某个需求要实现单选,这里仅记录下关键代码:
第一步:在适配器中定义两个变量:
private int lastPosition = -1; //记录上一次选中的图片位置,-1表示未选中 private Vector<Boolean> vector = new Vector<Boolean>();
第二步:在构造器中初始化:
for (int i = 0; i < dataList.size(); i++) { vector.add(false); }
第三步:在getVIew()方法中:
if (vector.elementAt(position) == true) { holder.theme_select.setVisibility(View.VISIBLE); } else { holder.theme_select.setVisibility(View.INVISIBLE); }
第四步:在item的点击事件中改变状态:
if (lastPosition != -1) { vector.setElementAt(false, lastPosition);//取消上一次的选中状态 } vector.setElementAt(!vector.elementAt(position), position); //直接取反即可 lastPosition = position;//记录本次选中的位置 backgroundId = dataList.get(lastPosition).getBackgroundId(); path = dataList.get(lastPosition).getBackgroundUrl(); notifyDataSetChanged();
搞定!!!!