Android Gridview обновляет только один элемент вне ImageAdapter - PullRequest
1 голос
/ 06 сентября 2011

У меня есть gridview с использованием адаптера изображения для элементов, он реализован как в этом примере: http://developer.android.com/resources/tutorials/views/hello-gridview.html

Дополнительно я добавил прослушиватель щелчков для каждого элемента в методе getView, который отправляет позицию щелчкав основной класс (вне ImageAdapter) с помощью обработчика.

Теперь я хочу обновить только соответствующий imageView, но:

  • Я не знаю, какполучить imageView вне класса ImageAdapter (отправить с обработчиком? Это не сериализуемо - создать буфер в ImageAdapter и getter?)

  • Я не уверен, какой метод использовать для измененияизображение.

В настоящее время я обновляю всю сетку каждый раз:

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

ImageAdapter:

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

Заранее спасибо

1 Ответ

0 голосов
/ 23 июня 2013

То, что вы сейчас делаете, несколько правильно.

В качестве оптимизации вы можете использовать ArrayList<int> в качестве изображений и создать метод в своем классе адаптера для изменения значения заданного индекса с помощью ArrayList.set(int index, E element). Затем вызов метода notifyDataSetChanged() должен "теоретически" обновить только измененное представление изображения:)

...