【发布时间】:2012-04-01 06:23:01
【问题描述】:
我有多个项目的多项选择列表视图。用户应该通过检查来选择一些项目。我在这个 ListView 上也有一个搜索选项卡。当用户开始搜索某些东西时,之前在原始 ListView 上选择的项目消失了。当我搜索某些内容时,如何保存已检查项目的状态?
【问题讨论】:
我有多个项目的多项选择列表视图。用户应该通过检查来选择一些项目。我在这个 ListView 上也有一个搜索选项卡。当用户开始搜索某些东西时,之前在原始 ListView 上选择的项目消失了。当我搜索某些内容时,如何保存已检查项目的状态?
【问题讨论】:
如果您使用 custoAdapter,则为每一行维护一个标志,无论是否选中。 如果在您的 getView() 方法中选择它,只需检查该标志变量,然后在您的新搜索列表中,您可以显示搜索结果以及之前选择的项目
【讨论】:
您可以使用 SharedPreferences,它将存储您发送给它的变量。它还将在会话中持续存在。如果您想要一个更简单的临时解决方案,您可以简单地为每个选中的项目创建一个字段布尔变量。当用户检查一个项目时,在 onCheckedListener 中:
isItem1Checked = item1.isChecked();
对每个项目执行此操作以保存其状态。然后,当您加载列表时,为每个项目运行:
item1.setChecked(isItem1Checked);
如果你想使用 SharedPreferences,除了你必须保存到 SharedPreferences 文件并从中获取之外,它是类似的。
查看更多关于共享首选项的信息:http://developer.android.com/guide/topics/data/data-storage.html#pref
【讨论】: