最近遇到一个问题,ListView和GridView实现单选效果
刚开始没有一点思路,最后受到一篇博客的启发(已不能找到)这种思想很值得学习
其实很简单
1.在自定义适配器中写一个方法
public void selPosition(int position){
selposition=position;
isCheck=true;
}
2.点击时执行调用上面的方法,且重新适配
mTagImg.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapterSelTagGroup.selPosition(position);
adapterSelTagGroup.notifyDataSetChanged();
}
});
3 .在适配时判断即可,isChecks是boolean类型,如果没有设置默认选中第一个
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHodler vh=null;
if(convertView==null){
vh=new ViewHodler();
convertView=View.inflate(mContext,R.layout.item_tag_gruoup,null);
vh.selGroupImg= (ImageView) convertView.findViewById(R.id.ib_tag_img);
vh.selGroupStr= (TextView) convertView.findViewById(R.id.tv_tag_str);
convertView.setTag(vh);
}else {
vh= (ViewHodler) convertView.getTag();
}
vh.selGroupImg.setImageResource(mSelTagGroup[position]);
vh.selGroupStr.setText(Contants.str[position]);
if(selposition==position&&isCheck){
vh.selGroupImg.setImageResource(Contants.sel_img[position]);
vh.selGroupStr.setTextColor(mContext.getResources().getColor(R.color.color_703c0f));
}else{
vh.selGroupStr.setTextColor(mContext.getResources().getColor(R.color.color_9B9B9B));
}
return convertView;
}