【发布时间】:2016-02-09 23:38:48
【问题描述】:
我遇到了onBitmapLoaded 的问题。该方法不应该被调用(它在我第二次进入我的视图时被调用)。尽管如此,我还是保留了对我的目标的引用,因为我将它添加到 arraylist。
我不明白为什么它不起作用。 有人有想法吗?
public void loadBitmap() {
if(loadtarget == null) {
loadtarget = new Target(){
@Override
public void onPrepareLoad(Drawable arg0) {
Log.d("Bitmap","On prepare load");
targetList.remove(this);
return;
}
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Log.d("Bitmap","OKAY for :" + filename);
targetList.remove(this);
handleLoadedBitmap(bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
Log.d("Bitmap","Error for :" + filename);
}
};
}
targetList.add(loadtarget);
Picasso.with(context).load(imageUrl).into(loadtarget);
}
【问题讨论】:
-
loadtarget 在哪里声明?作为类属性?
-
此外,您必须覆盖 equals() 和 hashCode() 方法。请参阅 JavaDoc:实现此类的对象必须具有 * {@link Object#equals(Object)} 和 {@link Object#hashCode()} 的有效实现,以便在内部正确存储。
-
是的,loadtarget 是一个类属性
-
从我读到的,我以为我只需要重写目标接口的三个方法。