ListView with ArrayAdapter and ViewHolder adding icons to the wrong item

后端 未结 3 813
陌清茗
陌清茗 2020-12-06 07:03

I have a dynamic ListView which uses an ArrayAdapter. When a name is selected from a spinner, the name together with an icon showing whether they a

3条回答
  •  时光说笑
    2020-12-06 07:20

    You have to move from the if a few lines of data after the comment, as in this question is explained

    // Bind the data efficiently with the holder.
    

    so it will look like this

    if (null == convertView) {
        Log.i("ANDY","Position not previously used, so inflating");
        convertView = inflater.inflate(R.layout.player_simple_list, null);
        // Creates a ViewHolder and store references to the two children views
        // we want to bind data to.
        holder = new ViewHolder();
        convertView.setTag(holder);
    } else {
        // Get the ViewHolder back to get fast access to the TextView
        // and the ImageView.
        holder = (ViewHolder) convertView.getTag();
    }
    
    // Bind the data efficiently with the holder.
    holder.text = (TextView) convertView.findViewById(R.id.label);
    holder.icon = (ImageView) convertView.findViewById(R.id.icon);
    if (sexmale == true) {
        holder.icon.setImageBitmap(maleicon);
    }
    else {
        holder.icon.setImageBitmap(femaleicon);
    }
    holder.text.setText(getItem(position));
    

提交回复
热议问题