Thanks again to stackoverflow. Wanted to position listview at same place it was left when the user clicked on an item to update/view it (in separate activity).
To save position – not just of top record but of the offset ie precise position relative to top:
int index = listview.fetFirstVisiblePosition(); View v = listview.getChildAt(0); int offset = (v==null) ? 0 : (v.getTop() - listview.getPaddingTop();
Then when return (eg in onActivityResult):
listview.setSelectionFromTop(index, offset);