我有一个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();
}
提前致谢
答案 0 :(得分:0)
您目前正在做的事情有点正确。
作为优化,您可以使用ArrayList<int>
作为图像,并在适配器类中创建一个方法,以使用ArrayList.set(int index, E element)
修改给定索引的值。然后调用notifyDataSetChanged()
方法应该“理论上”仅更新已更改的图像视图:)