android - 水平 ListView 从 URL 加载相同的图像(使用 Picasso)

标签 android picasso horizontallist

我已经剪掉了这段代码。它是一个水平 ListView 。问题是正在加载相同的图像而不是不同的图像。可能是什么问题?我不认为 picasso 是这里的问题。我猜是别的原因。

 @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
//      View timeLineRow = LayoutInflater.from(parent.getContext()).inflate(R.layout.dashboardtimelinerow, null);
        if (convertView == null) {
            LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = mInflater.inflate(R.layout.toprecommendationsitem, parent, false);

            holder = new ViewHolder();
            holder.recommimage = (ImageView) convertView.findViewById(R.id.recommimage);
            holder.userImage = (CircularImageView) convertView.findViewById(R.id.userImage);

            convertView.setTag(holder);
        } else
            holder = (ViewHolder) convertView.getTag();
        int i=0;
        for(i=0; i<mArrayListData.size(); i++) {
            if (!mArrayListData.get(i).getDishimageurl().isEmpty()) {
                Picasso.with(mContext)
                        .load(mArrayListData.get(i).getDishimageurl())
                        .resize(172, 172)

                        .into(holder.recommimage);
                break;

            }
        }

        return convertView;
    }

最佳答案

您没有在 getView 函数内的任何地方使用 position 的值。 getView 应该返回位于您传入的数组或列表中的索引 position 处的任何数据的 View 。您需要将代码替换为类似

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;

    if (convertView == null) {
        LayoutInflater mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = mInflater.inflate(R.layout.toprecommendationsitem, parent, false);

        holder = new ViewHolder();
        holder.recommimage = (ImageView) convertView.findViewById(R.id.recommimage);
        holder.userImage = (CircularImageView) convertView.findViewById(R.id.userImage);

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

    if (!mArrayListData.get(position).getDishimageurl().isEmpty()) {
        Picasso.with(mContext)
                 .load(mArrayListData.get(position).getDishimageurl())
                 .resize(172, 172)
                 .into(holder.recommimage);
    }

    return convertView;
}

关于android - 水平 ListView 从 URL 加载相同的图像(使用 Picasso),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28358295/

相关文章:

javascript - 将 imageView 的内容设置为壁纸( picasso )

android - picasso 不在 MainActivity 中加载 View

css - 使用 CSS 的水平嵌套列表

css - 如何在不包裹的情况下将所有 LI 包含在 ul 宽度内

java 不运行 if 结构在 onclick 监听器内

android - 在android中以编程方式获取选择句柄

android - 如何在谷歌地图上绘制两点之间的部分路径?

android - 在 RecyclerView 中滚动时图像闪烁

android - 是否可以在 Android 平板电脑上模拟 Android 手机?

android - 当用户在 android 中水平滚动时禁用垂直滚动