2011-12-19 4 views
0

Сценарий: Я использую listview с пользовательским адаптером. Я собираю данные каждые 5 секунд, а затем отображаю их в списке.ListView обновить до конца списка

Проблема: после каждого обновления список прокручивается вверху. Я бы хотел, чтобы список остался как есть с точки зрения прокрутки и только базовые данные, которые нужно обновить.

Текущий код: Это называется каждый раз, когда я беру новые данные.

mListAdapter = new CustomListAdapter(this, mListData); 
mList.setAdapter(mListAdapter); 
+0

ли работа если вы вместо того, чтобы создать новый адаптер замены списка и вызова 'notifyDataSetChanged()' на адаптере? Или, если это не подкласс ArrayAdapter, регистрация DataSetObserver? – Jave

ответ

1

Вместо кода, пожалуйста, попробуйте поставить каждый раз, когда вы выборки данных это одна:

adapter.notifyDataSetChanged(); 
+0

Вопрос. Был ли вызов notifyDataSetChanged() сохранить ваш ListView, где вы в последний раз остановились? – Andy

+0

yes..it должен оставаться там –

1

Вместо этого вы должны установить новые данные на адаптер, а затем вызвать notifyDataSetChanged.

Надеюсь, это поможет!

+0

Помогло ли вам это? –

1

Как получить новые mListData тогда просто аннулирует адаптер не инициализируется заново адаптер можно назвать как этот

mListAdapter.notifyDataSetChanged(); 
0

Вы можете использовать

mList.setSelection(mListData.size() - CONSTANT.CONTENT_SIZE); 

Таким образом ListView не освежит в вершина. Или вы можете также использовать

adapter.notifydatasetchanged 

путем обновления переплетены списка.

+0

что это за CONSTANT.CONTENT_SIZE? – PravinCG

+0

Этот setSelection установит listview в списке, который вы хотите видеть сверху. Скажем, ур список состоит из 10 предметов. И вы обновляете 5 предметов. то это CONSTANT.CONTENT_SIZE = 5. Этот CONSTANT.CONTENT_SIZE - это номер, который вы обновляете вместе со списком. – san

+0

Это не связано с вопросом, тогда проблема заключается в том, чтобы убедиться, что список не отображается сверху сверху. – PravinCG

0

Это работает для меня:

adapter.setData(list); 
adapter.notifyDataSetChanged(); 
Смежные вопросы