Gchorba
Gchorba

Reputation: 301

Android Listview with Image and Text

So I have a listview that has both text and images in it. Everything about it works except when I am presented with the top row not having an image assigned to it.

rather than it using the placeholder image I have for rows that have no image assigned it takes the image of the current user. The current user in this image is number 3, but his picture is also being shown for user 1.

layout

here is my code for the CustomListAdapter, it grabs the PlayerItem which has players name and image url.

public class CustomListAdapter extends BaseAdapter {

    private ArrayList<PlayerItem> listData;

    private LayoutInflater layoutInflater;

    public CustomListAdapter(Context context, ArrayList<PlayerItem> listData) {
        this.listData = listData;
        layoutInflater = LayoutInflater.from(context);
    }

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

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

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

    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        if (convertView == null) {
            convertView = layoutInflater.inflate(R.layout.rosterrow, null);
            holder = new ViewHolder();
            holder.playerNameView = (TextView) convertView.findViewById(R.id.title);
            holder.imageView = (ImageView) convertView.findViewById(R.id.thumbImage);
            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        PlayerItem playerItem = (PlayerItem) listData.get(position);

        holder.playerNameView.setText(playerItem.getplayerName());

        if ((holder.imageView != null) && (playerItem.getUrl() != null)) {
            Picasso.with(null).load(playerItem.getUrl()).into(holder.imageView);
        }

        return convertView;
    }

    static class ViewHolder {
        TextView playerNameView;
        ImageView imageView;
    }
}

Upvotes: 0

Views: 371

Answers (1)

Gchorba
Gchorba

Reputation: 301

Fixed it by adding

else {
            holder.imageView.setImageResource(R.drawable.list_placeholder);
        }

Upvotes: 1

Related Questions