Android Gridview只更新ImageAdapter外部的一个Element

时间:2011-09-06 10:52:53

标签: android gridview imageview baseadapter

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

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

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

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

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

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

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

ImageAdapter:

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

提前致谢

1 个答案:

答案 0 :(得分:0)

您目前正在做的事情有点正确。

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