1

我在由 CursorAdapter 填充的片段中有一个列表视图。

当设备旋转时,我想保存列表的状态,然后恢复它,而不必再次调用 SQLite DB。

我该怎么做呢?

我没有使用 ContentProvider 或任何 CursorLoaders。

4

1 回答 1

3

您可以将您Cursor的方法保存在 Activity 的onRetainNonConfigurationInstance()方法中,或者使用包含 Cursor 的数据片段并在片段的方法中调用setReatinInstance() 。onCreate()

CursorAdapter然后,您必须在方法内重新创建onCreate()

最后,您必须ListView通过调用getFirstVisiblePosition()来存储当前可见的最顶层项目ListView。此方法返回一个 int 值,您可以将其存储在ActivityBundle的方法中。onSaveInstanceState()

您在方法中使用此值onCreate()(它是传递给 onCreate() 的包的一部分)。设置适配器后,您调用 [setSelectionFromTop(yourValue, 0)]( https://developer.android.com/reference/android/widget/ListView.html#setSelectionFromTop(int , int))。

于 2013-05-18T18:59:48.397 回答