我在由 CursorAdapter 填充的片段中有一个列表视图。
当设备旋转时,我想保存列表的状态,然后恢复它,而不必再次调用 SQLite DB。
我该怎么做呢?
我没有使用 ContentProvider 或任何 CursorLoaders。
我在由 CursorAdapter 填充的片段中有一个列表视图。
当设备旋转时,我想保存列表的状态,然后恢复它,而不必再次调用 SQLite DB。
我该怎么做呢?
我没有使用 ContentProvider 或任何 CursorLoaders。
您可以将您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))。