我在由 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))。