ListView和GridView实现单选效果

最近遇到一个问题,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;
       }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值