ParseQueryAdapter - 两行获得相同的图像

时间:2014-05-17 21:33:40

标签: android android-listview imageview parse-platform recycle

我正在使用ParseQueryAdapter来设置包含来自Parse服务器的数据的列表视图。我的表中有3行,其中两行不包含图像,一行包含图像。如果服务器上不存在图像,我会从我的资源中设置自己的默认图像。 但是当listview完成加载时,其中两行具有相同的图像(来自服务器的图像)。

*在调试中,我看到前两行获取默认图像,只有当我加载服务器中的图像时,第一行才能获得它。

这是来自ParseQueryAdapter的我的getItemView:

@Override
public View getItemView(ParseGame parseGame, View v, ViewGroup parent) {
    View view = v;
    ViewHolder holder;
    if (v == null) {
        view = View.inflate(getContext(), R.layout.shared_games_listview_layout, null);

        holder = new ViewHolder();
        holder.image = (ParseImageView) view.findViewById(R.id.imageViewParseImage);
        holder.type = (TextView) view.findViewById(R.id.textViewType);
        holder.name = (TextView) view.findViewById(R.id.textViewName);
        holder.level = (TextView) view.findViewById(R.id.textViewLevel);

        view.setTag(holder);
    }
    else {
        holder = (ViewHolder) view.getTag();
    }

    super.getItemView(parseGame, v, parent);

    ParseFile photoFile = parseGame.getParseFile("gameImage");
    if (photoFile != null) {
        holder.image.setParseFile(photoFile);
        holder.image.loadInBackground();
    }
    else {
        int width = imageWidth;
        int height = imageHeight;
        if (parseGame.getType().equals(Game.GameType.PUZZLE.toString())) {
            int resId = R.drawable.puzzle_default;
            holder.image.setImageBitmap(imageUtils.getBitmap(resId, width, height));
        }
        else {
            holder.image.setImageResource(R.drawable.default_image);
        }
    }
}

这是持有人:

public static class ViewHolder {

    public ParseImageView image;
    public TextView type;
    public TextView name;
    public TextView level;
}

我该怎么办才能让每一行都有自己的形象?

0 个答案:

没有答案