我正在使用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;
}
我该怎么办才能让每一行都有自己的形象?