2009-10-08 4 views
14

Я хотел знать, как обновить ListActivity, когда я изменяю/добавляю к нему данные.Обновление Android ListActivity при изменении данных списка?

Сначала я думал, что ListAdapter будет знать, когда список будет изменен, но когда я добавил элементы в список, нет обновления на ListActivity, только когда я закрою ListActivity и снова открою его, я вижу, что изменения происходят.

Так что я искал любой метод, такой как: update(), refesh() или что-то в этом роде, но его нет. Кажется, я понятия не имел, может кто-нибудь мне помочь?

ответ

22

Если вы используете ArrayAdapter, управляйте содержимым списка через адаптер - не трогайте основной список. Есть add(), insert() и remove() методы на ArrayAdapter.

Если вы используете CursorAdapter, запустите requery() на Cursor.

+0

ок спасибо не я понимаю, как это работает –

+0

я использую ArrayAdapter и я обновлю запись. Как обновить ListView? –

+3

Это, конечно, больше не рекомендуется, так как 'requery()' выполняется в потоке пользовательского интерфейса. Если вы столкнулись с этим сообщением, вам следует использовать вместо этого «Loader». –

7

Попробуйте ArrayAdapter: notifyDataSetChanged
Google docs link

+2

Просто обратите внимание, что это не работает, если нет никаких наблюдателей, подключенных к адаптеру. – Waltsu

0

Может быть, вы должны сделать это setListAdapter(listAdapter);

Смежные вопросы