Android - Что делает adapter.notifyDataSetInvalidated?

Что делает метод adapter.notifyDataSetInvalidated (), выполняют? Нет никакой документации относительно него.

Я пытаюсь перезагрузить ListView и notifyDataSetChanged, или notifyDataSetInvalidated, кажется, ничего не выполняют.

29
задан Tawani 10 July 2010 в 15:27
поделиться

2 ответа

Это зависит от реализации адаптера ... если вы посмотрите исходный код, вы увидите, что:

  1. notifyDataSetInvalidated () вызывает notifyInvalidated () класса DataSetObservable ( см. Здесь )
  2. Затем notifyInvalidated () вызывает метод onInvalidated () для каждый DataSetObserver ( см. здесь ).
  3. Затем следует забавная часть: onInvalidated () ничего не делает ...

Это его реализация:

public void onInvalidated() {
    // Do nothing
}

DataSetObserver - абстрактный класс, поэтому подкласс должен решать, что делать с onInvalidated () .

27
ответ дан 28 November 2019 в 01:01
поделиться

Насколько я знаю, метод notifyDataSetInvalidated() останавливает доступ адаптера к данным (в случае, если они недействительны, недоступны и т.д.). Метод notifyDataSetChanged() обновляет ListView, чтобы вы могли видеть новые добавленные данные, но вызывать его нужно в потоке UI.

Мне очень помогло посмотреть это видео - там есть два раздела, где упоминаются эти методы и объясняется, как их правильно использовать. Возможно, это поможет и вам :)

28
ответ дан 28 November 2019 в 01:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: