【发布时间】:2014-03-17 18:03:31
【问题描述】:
我有一个 Google 的 NavigationDrawer,它添加/替换了 fragments。 fragments 之一有一个 listView 通过网络请求填充自定义 BaseAdapter(asyncTask,需要时间)。我想要的是将listView 内容保存在某处,因此如果用户通过navigationDrawer 导航到另一个片段,然后或稍后导航回包含listView 的fragment - 我希望listView 立即填充已保存asyncTask 完成加载新内容之前的旧内容。最低 API 为 10。
我尝试了什么。
onSaveInstanceState- 序列化Parcelable ArrayList<CustomObject>。不知何故,我没有让它工作。此外,这并不能解决我的问题,因为 onSaveInstaceState 不会在通过 navigationDrawer 导航时触发。设置新片段的
InitialState(setInitialSavedState)然后saving(saveFragmentInstanceSate)/加载它。这适用于 EditTexts 和 TextView 等简单视图,但不适用于 listView。
保存 listView 内容的最佳方法是什么?请帮帮我。
【问题讨论】:
-
将其保存在您的 AsyncTask 中并让 Adapter 读取保存的数据
-
@psknik 更多详情?
-
发布更多代码以便更好地理解
-
将其保存在某处:在 sqlite 中,在使用 json 等的文件中,并创建一个读取已保存数据的适配器
-
@psknik 保存到文件或 sqlite。这是最好的方法吗?会不会很慢?
标签: android android-listview android-fragments android-asynctask navigation-drawer