Используя setAdapter () для обновления списка, Android сбрасывает позицию. Попробуйте вместо этого заменить адаптер.
Я не знаю, какой адаптер вы используете, поэтому приведу два примера.
ArrayAdapter
adapter = list.getAdapter();
if (adapter == null) {
// Create new adapter + list.setAdapter()
} else {
adapter.clear();
adapter.addAll(newData);
adapter.notify(notifyDataSetChanged());
}
CursorAdapter
adapter.changeCursor(newCursor);