ListView的每个Item项都有两个Button(男,女),和两个ImageView(绿,红),点击button,实现ImageView的改变,并且listview不错乱

bean类 Item的所有属性都封装起来

public class util {

    private Integer img;
    private String gender;
    private String single;
    private Integer image_gender;//对号
    private Integer image_single;

    private boolean flag;//选中状态

    public Integer getImg() {
        return img;
    }

    public void setImg(Integer img) {
        this.img = img;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getSingle() {
        return single;
    }

    public void setSingle(String single) {
        this.single = single;
    }

    public boolean isFlag() {
        return flag;
    }

    public void setFlag(boolean flag) {
        this.flag = flag;
    }

    public Integer getImage_gender() {
        return image_gender;
    }

    public void setImage_gender(Integer image_gender) {
        this.image_gender = image_gender;
    }

    public Integer getImage_single() {
        return image_single;
    }

    public void setImage_single(Integer image_single) {
        this.image_single = image_single;
    }

    public util(Integer img, String gender, String single, boolean flag, Integer image_gender, Integer image_single) {
        this.img = img;
        this.gender=gender;
        this.single=single;
        this.flag=flag;
        this.image_single=image_single;
        this.image_gender=image_gender;

    }

}


MainActivity添加数据

ListView lv= (ListView) findViewById(R.id.lv);

 List<util> img_list=new ArrayList<>();

 for (int i=0;i<20;i++){

     img_list.add(new util(R.mipmap.ic_launcher,"男","单身",false,R.drawable.a,R.drawable.a));

 }



lv.setAdapter(new MyAdapter(MainActivity.this,img_list));


Adapter中:

public class MyAdapter extends BaseAdapter{
    private Context context;
    private List<util> img_list;

    //自定义变量
    private int a=0;



    public MyAdapter(Context context,List<util> img_list){
        this.context=context;
        this.img_list=img_list;

    }


    @Override
    public int getCount() {
        return img_list.size();
    }

    @Override
    public Object getItem(int position) {
        return img_list.get(position);
    }

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

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {



        ViewHolder holder=new ViewHolder();

        if(convertView==null){
            convertView=View.inflate(context,R.layout.item,null);
            holder.iv= (ImageView) convertView.findViewById(R.id.iv);
            holder.gender= (Button) convertView.findViewById(R.id.gender);
            holder.single= (Button) convertView.findViewById(R.id.single);
            holder.gender_iv= (ImageView) convertView.findViewById(R.id.gender_iv);
            holder.single_iv= (ImageView) convertView.findViewById(R.id.single_iv);

            convertView.setTag(holder);

        }else{
            holder= (ViewHolder) convertView.getTag();

        }
        holder.iv.setImageResource(img_list.get(position).getImg());
        holder.gender.setText(img_list.get(position).getGender());
        holder.single.setText(img_list.get(position).getSingle());
        holder.gender_iv.setImageResource(img_list.get(position).getImage_gender());
        holder.single_iv.setImageResource(img_list.get(position).getImage_single());

   //     holder.gender.setTag(position);//绑定  根据id找此控件
   //     holder.single.setTag(position);

        final ViewHolder finalHolder = holder;
        holder.gender.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //   Button gender= (Button) v;
           //         int position=(int)finalHolder.gender.getTag();

                if(img_list.get(position).getGender().equals("男")){
                    img_list.get(position).setGender("女");
                    img_list.get(position).setImage_gender(R.drawable.p);
                }else{
                    img_list.get(position).setGender("男");
                    img_list.get(position).setImage_gender(R.drawable.a);
                }
                notifyDataSetChanged();

            }
        });

        holder.single.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              //  Button single= (Button) v;
                if(img_list.get(position).getSingle().equals("单身")){
                    img_list.get(position).setSingle("已婚");
                    img_list.get(position).setImage_single(R.drawable.p);
                }else{
                    img_list.get(position).setSingle("单身");
                    img_list.get(position).setImage_single(R.drawable.a);
                }

                notifyDataSetChanged();

            }
        });



        return convertView;
    }

    class ViewHolder{
        ImageView iv;
        Button gender;
        Button single;
        ImageView gender_iv;
        ImageView single_iv;


    }
}








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值