ListView の表示位置を覚える

前回表示していたスクロールの位置を復元したいとき。
保存。

ListView list = (ListView)findViewById(android.R.id.list);
int topPosition = list.getFirstVisiblePosition();
int topPositionY = list.getChildAt(0).getTop();

復元。

list.setSelectionFromTop(topPosition, topPositionY);

たぶん。
スムーススクロールができそうなメソッドもあるけど、使えるのは Android 2.2 かららしい...。