java - 如何: Make addition to class property within list

标签 java list class

我有一个List<Presenter> presenterList;

public class Presenter(){
  String name;
  String imageRef; // Filename to be downloaded
  Bitmap image;

  (etc...)
}

我正在使用 AsyncTask,图像下载后,我希望浏览列表并将图像值设置为新下载的图像。 到目前为止我已经

Presenter pres = PresenterList.get(Position);
pres.Image = new (Bitmap) downloadedImageFromImageRef;

但是我担心这与列表中演示者的图像值无关。

我如何引用,甚至分配给列表中的特定演示者属性?

通过使用 C(很多年前),我相信像指向要在其中分配 .Image 的值的指针之类的东西

提前谢谢您

最佳答案

好吧,如果您有 C 经验,那么关于 Java 需要了解的是,它不使用指针,但它使用引用。因此,如果我正确理解您的问题,那么您已经在其他地方使用 Presenter 实例的 Image 属性,然后您想稍后填写它。在这种情况下,分配 pres.Image = new (Bitmap) DownloadedImageFromImageRef; 不起作用,因为其他对象正在查看不同的 Bitmap 对象引用。

您可能需要做的是使用观察者模式——这取决于问题的细节。这是一个例子:

在代码中的某个位置,我有一个类 Foo,它想要使用 Presenter 实例中的 Image 属性。但是,由于该属性要稍后才设置,因此此类希望在准备就绪时收到通知(它是观察者)。

public class Presenter {
  String Name;
  String ImageRef; // Filename to be downloaded
  private Bitmap Image;

  private PresenterImageObserver observer;

  public void setImageObeserver(PresenterImageObserver pio) {
    this.observer = pio;
  }

  public void setImage(Bitmap b) {
    this.Image = b;
    this.observer.imageLoaded(b);
  }
}

public interface PresenterImageObserver {
  public void imageLoaded(Bitmap b);
}

public class Foo implements PresenterImageObserver {
  //Foo's constructor. It wants the image from presenter p, when it is ready
  public Foo(Presenter p) {
    p.setImageObserver(this);
  }

  public void imageLoaded(Bitmap b) {
    //b contains the loaded image and this Foo instance can use it now!
  }
}

您需要使用 pres.setImage(new (Bitmap) downloadImageFromImageRef); 设置图像。

关于java - 如何: Make addition to class property within list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24085675/

相关文章:

java - 如何从 groovy Postbuild 插件访问 Jenkins 构建 Artifact ?

java - 实例化Java对象时,是不是自动创建了一个父类的对象?

android - 在 ScrollView 中列出

jquery - 使用类时在 jquery click 事件中调用函数

C++ 没有构造函数 "Card::Card"的实例与参数列表匹配

java - 仅求解四次多项式实根的最有效方法

java - OutOfMemoryError 增加什么以及如何增加?

javascript - JS音频播放器,单击列表项播放

javascript - 幻灯片内的 ionic ListView

java - 如何在 protected Java 类上实现接口(interface)