【问题标题】:Android Gridview update only one Element from outside the ImageAdapterAndroid Gridview 仅更新 ImageAdapter 外部的一个元素
【发布时间】:2011-09-06 10:52:53
【问题描述】:

我有一个使用图像适配器作为元素的网格视图, 它的实现就像在这个例子中一样: http://developer.android.com/resources/tutorials/views/hello-gridview.html

此外,我在 getView 方法中为每个项目添加了一个单击侦听器,它使用处理程序将单击的位置发送到主类(ImageAdapter 之外)。

现在我只想更新相关的imageView,但是:

  • 我不知道如何在 ImageAdapter 类之外获取 imageView(与处理程序一起发送?它不可序列化 - 在 ImageAdapter 和 getter 中创建缓冲区?)

  • 我不确定使用哪种方法来更改图像。

目前我每次都在更新整个网格:

((ImageAdapter)gridview.getAdapter()).setImages(imageIds);
gridview.invalidate();

图像适配器:

public void setImages(int[] images) {
mImages = images;
notifyDataSetChanged();
}

提前致谢

【问题讨论】:

标签: android gridview imageview baseadapter


【解决方案1】:

你现在做的有些正确。

作为一种优化,您可以使用ArrayList<int> 作为图像并在您的适配器类中创建一个方法来使用ArrayList.set(int index, E element) 修改给定索引的值。然后调用notifyDataSetChanged() 方法应该“理论上”只更新更改的图像视图:)

【讨论】:

  • 我不这么认为。我只是放了一个断点,notifyDataSetChanged() 刷新整个集合?
猜你喜欢
  • 2013-10-13
  • 1970-01-01
  • 2018-06-02
  • 1970-01-01
  • 2020-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
相关资源
最近更新 更多