Как обновить SimpleAdapter в Android

Действительно ли возможно обновить SimpleAdapter? У меня есть список данных и нижнего колонтитула, который говорит, "Видят Следующие Результаты", Когда тот элемент списка нажат, я получаю событие и получаю новые данные. Я затем хочу заменить данные в ListView с этими новыми данными, но я не могу выяснить, как сделать это. Какие-либо Идеи? Я не хочу использовать ArrayAdapter, причина насколько я вижу, объекты могут только содержать одну строку, где мне нужен он для содержания нескольких строк и ints.

9
задан Chris L. 22 July 2010 в 20:52
поделиться

1 ответ

Обновление : согласно del116, вы действительно можете предоставить SimpleAdapter изменяемую карту, а затем вручную вызвать метод адаптера notifyDataSetChanged , когда вам нужно обновить список. Однако моя точка зрения ниже касается документации SimpleAdapter, в которой указывается, что она предназначена для статических данных; использование его для изменяемых данных идет вразрез с его дизайном, поэтому, если вы воспользуетесь этим методом, я обязательно проверю, будет ли он продолжать работать в новых выпусках Android по мере их появления.

(Исходный комментарий следует ниже :)

Если вы посмотрите на описание SimpleAdapter , в нем говорится, что это «простой адаптер для сопоставления статических данных с представлениями, определенными в файле XML. . " Я добавил акцент - проще говоря, SimpleAdapater не предназначен для использования с изменяющимися данными; он обрабатывает только статические данные. Если вы не можете использовать ArrayAdapter , потому что ваши данные содержат более одного бита текста, вам придется либо создать свой собственный ListAdapter , либо поместить свои данные в DB и используйте один из CursorAdapter s.

В крайнем случае, если вам не нужна высокая производительность, вы можете обновить ListView , поддерживаемый SimpleAdapter , создав совершенно новый SimpleAdapter каждый раз, когда ваши данные изменяются, и сообщает представлению списка использовать его через setListAdapter .

11
ответ дан 4 December 2019 в 15:11
поделиться
Другие вопросы по тегам:

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