Android Gridview обновляет только один элемент вне ImageAdapter

1

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

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

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

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

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

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

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

ImageAdapter:

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

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

Теги:
gridview
imageview
baseadapter

1 ответ

0

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

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

  • 0
    Я так не думаю. Я просто поставил точку останова, notifyDataSetChanged () обновить весь набор?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню