Gridview 点击修改布局

先给个效果图:
这里写图片描述

Gridview Item 中点击后圆形变成一个红色小圈其实是图片的切换。

其实做之前我一直在考虑图片切换这段代码是放在Adapter的getview中还是Activity中。
一开始是放在getview中。convertView是当前点击的view。map后面来解释。这样就可以切换图片了,然后我发现我在Activity中的Gridview点击事件无效了,Activity中不能点击的话 那我金额就不能跟着改变了。没有查原因直接就放弃了。

convertView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            ClearCheck();
            ((ImageView) (map.get("" + position))).setImageResource(R.drawable.check); 
        }
    });

在getview中加这段代码Activity中的Gridview点击事件无效了。

在Activity中声明一个静态Map来装Imgview

public static HashMap<String, Object> map;  //声明一个静态Map来装Imgview

Adapter全部代码都在这里。

public class GiftAdapter extends BaseAdapter {

    Context context;
    int[] imageUrls ;
    float[] num;


    public GiftAdapter(Context context,int[] imageUrls,float[] num)
    {
        this.context =context;
        this.imageUrls=imageUrls;
        GiftActivity.map = new HashMap<String, Object>();  
        this.num=num;
    }

    @Override
    public int getCount() {
        return imageUrls.length;
    }

    @Override
    public Object getItem(int arg0) {
        return null;
    }

    @Override
    public long getItemId(int arg0) {
        return 0;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup arg2) {
         ViewHoder viewHoder = null;
     if(convertView==null)
     {
         viewHoder =new ViewHoder();
            convertView = LayoutInflater.from(context).inflate(R.layout.giftitem, null);
            viewHoder.img =(ImageView) convertView.findViewById(R.id.gifticon);
            viewHoder.check =(ImageView) convertView.findViewById(R.id.check);
            viewHoder.num =(TextView) convertView.findViewById(R.id.giftnum);

            convertView.setTag(viewHoder);
     }
     else{
         viewHoder =(ViewHoder) convertView.getTag(); 
     }
    //注意这句代码我把Imageview装进Map里面去了。 
    GiftActivity.map.put("" + position, viewHoder.check); 

     viewHoder.img.setImageResource(imageUrls[position]);
    viewHoder.num.setText(num[position]+"");

        return convertView;
    }
    static class ViewHoder
    {
        ImageView img;
        ImageView check;
        TextView num;
    }


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值