2012-03-21 5 views
-1

Я использую ниже код для обновления списка.ListView всегда сверху

setListAdapter(MyAdapter); 
MyAdapter.notifyDataSetChanged(); 
getListView().setEmptyView(empty); 

Но при каждом обновлении список всегда показывает верхний. Я хочу, чтобы он только обновлял данные, но не фокусировался на вершине. Как это сделать?

+0

Информация не достаточна. Понять, как представления складываются на основе корневого макета, а затем обновлять свой вопрос на данный момент .. это ** НЕ ** достаточно информации для диагностики вашей проблемы. – JoxTraex

+0

Если вы хотите обновить listview MyAdapter.notifyDataSetChanged(); достаточно. Почему вы вызываете setListAdapter (MyAdapter), - это может быть причиной того, почему ваш список выглядит сверху. –

+0

Вы имеете в виду, что просмотр списка прокручивается вверху после вашего обновления, а не сохраняет его положение прокрутки? – louielouie

ответ

2

Необходимо добавить listview.setSelection(your_collection.size());. Это сделает последний элемент в ListView выбранным при обновлении ListView. Также вызовите это после реферирования ListView.

3

Используйте ArrayAdapter, поддерживаемый ArrayList. Чтобы изменить данные, просто обновите данные в списке и вызовите

MyAdapter.notifyDataSetChanged().

Хотя вы также можете вызвать notifyDataSetChanged() на SimpleAdapter.

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