【问题标题】:Android Save and Restore List State with CursorAdapterAndroid 使用 CursorAdapter 保存和恢复列表状态
【发布时间】:2013-05-17 04:14:17
【问题描述】:

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

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

我该怎么做?

我没有使用 ContentProvider 或任何 CursorLoaders。

【问题讨论】:

    标签: android save restore simplecursoradapter android-cursoradapter


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我正在使用一个片段,而我只需要 setRetainInstace(true)。感谢您提供有关这两种解决方案的详细信息!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-28
    • 2015-10-06
    • 2013-04-04
    • 2011-07-23
    • 2014-04-25
    • 1970-01-01
    相关资源
    最近更新 更多