如何手动获取get(...)索引

时间:2015-02-24 15:16:36

标签: java android singleton

我有以下问题。我认为至少有趣。我也希望找到一个解决方案:)

我有一个内部用户数组,由于某些原因,他们将每个用户的图像存储在singleton class中。这个单例类正确存储每个用户的每个ArrayList图像。

当我转到我想要访问每个用户图像列表的部分时,我应该这样做:

myUsersList.get(userPosition).getImages();

但是,由于我存储图像列表的类是单例类,因此需要知道要返回的图像列表的索引。在另一种情况下,它不知道要返回哪个图像列表。

我的图片列表是:

List<List<Bitmap>>

到目前为止,我所有的努力都失败了。我想知道是否有办法以某种方式将此索引传递给我的单例类,因此我的图像列表访问看起来像上面的代码。

有什么想法吗?

修改 我试着更好地解释自己:

我有一个包含一些用户信息的类。由于我的应用程序的一些内存管理,我必须存储我的用户&#39;单例类中的图像列表,以便在外部访问。

为了使数据访问层更容易,我试图使这个单例图像列表透明。所以,当我有一个用户在常规ArrayList上提供所有信息时,我会尝试像这样访问它:

myUsersArrayList.get(userPosition);

由于我的用户图片是单个类,外部我必须访问用户的图像列表,如下所示:

mySingletonClassImages.get(userPosition);

或者我可以实现这样的事情:

myUsersArrayList.get(userPosition).getImages(userPosition);

但我希望它看起来像这样:

myUsersArrayList.get(userPosition).getImages();

所以我有问题如何在不传递索引的情况下获取索引。

我不知道现在它是否更清楚......

1 个答案:

答案 0 :(得分:1)

诀窍是让myUsersList.get(userPosition)返回以下内容:

  • 封装了userPosition
  • 的值
  • 有一个方法getImages(),它将使用封装的值。

所以:

class Special {
  private int userPosition;
  private List<List<Bitmap>> images;
  public Special(int up,List<List<Bitmap>> i) { userPosition = up; images = i }
  public List<Bitmap> getImages() { return ...; }
}

现在make myUsersList.get(userPosition)返回上一个类的实例。

class UsersList {
  public Special get(int up) {
    return new Special(up,theSingleton);
  }
}