Gridview 点击修改布局

来源:互联网 发布:情义我心知 编辑:程序博客网 时间:2024/06/05 15:24

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

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
原创粉丝点击