ListView和GridView实现单选效果

来源:互联网 发布:免费cad2014软件下载 编辑:程序博客网 时间:2024/05/20 04:27

最近遇到一个问题,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;
    }

0 0
原创粉丝点击