gpt4 book ai didi

Android: onBindViewHolder 无法缓存图片

转载 作者:搜寻专家 更新时间:2023-11-01 09:33:29 26 4
gpt4 key购买 nike

如果图像不存在,我将尝试下载它们;如果已经下载,我将尝试保留并重新使用它们。

下载和展示作品时,不会重复使用它们。似乎 mValues 在不同的调用中不是相同的 mValues

这是我的代码

public void onBindViewHolder(final TabFragment1.SimpleItemRecyclerViewAdapter.ViewHolder holder, int position) {
holder.mItem = mValues.get(position);
holder.mIdView.setText(mValues.get(position).title);
holder.mContentView.setText(mValues.get(position).description);

if (holder.mThumbnail == null) {
System.out.println("thumbnail null"); //NEVER gets called
} else {
if(mValues.get(position).thumbnailData!=null){
System.out.println("thumbnailData contained"); //NEVER GETS CALLED, IT ALWAYS SEEMS TO BE NUL
holder.mThumbnail.setImageDrawable(mValues.get(position).thumbnailData);
} else {
System.out.println("thumbnailData downloading"); //always happening
try {
AsyncTask<String, Void, Bitmap> execute = new DownloadImageTask((ImageView) holder.mThumbnail)
.execute(holder.mItem.thumbnailUrl);
mValues.get(position).thumbnailData = holder.mThumbnail.getDrawable();

if(mValues.get(position).thumbnailData!=null) {
System.out.println("is null"); //hardly ever gets printed
} else {
System.out.println("is not null"); //always gets printed
}
} catch (Exception ex) {
}
}
}
}

已解决:我的代码有误。缩略图更新没有等待 AsyncTask 完成,我弄乱了 if 语句,所以它欺骗我认为"new"缩略图有效。我将缩略图更新放入 AsyncTask 中,现在它可以工作了:)

最佳答案

你的 if else 语句,在 try catch 中已经交换了日志语句...这里你的 if 语句检查 (thumbnail !=null) 但如果发现为真则将其打印为 null....所以我的意思是,你的缩略图对象始终为 null,因为它的值取决于您在其上方启动的 Asynctask 的完成情况,因此您不能像那样访问它,因为此下载过程将在单独的线程上运行。

关于Android: onBindViewHolder 无法缓存图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45268600/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com