【问题标题】:Android SavePreferences from listview来自列表视图的 Android SavePreferences
【发布时间】:2011-11-10 21:23:16
【问题描述】:

我正在尝试从 ListView 中保存首选项,使用以下代码我可以从 EditText 中保存值:

etpref = (EditText) findViewById(R.id.etpreftest);
SavePreferences("testpr", etpref.getText().toString());

然后我用

检索它
SharedPreferences sp = PreferenceManager
         .getDefaultSharedPreferences(context);
         String strtestpr = sp.getString("testpr", null);

if (strtestpr.contains(body)) {
    //do something
}

我需要做的是保存 ListView 中项目的值并以相同的方式使用它们(如果可能的话)。我知道可以使用此代码从列表中的单个项目/行中保存,但这没有帮助。

【问题讨论】:

    标签: android listview sharedpreferences


    【解决方案1】:

    您使用什么数据结构来支持您的 Listview?您使用的是什么适配器类型?您应该能够使用该适配器所需的任何东西?例如,如果它是一个 ArrayAdapter,每次用户编辑列表中的某些内容时,您应该立即将新值保存回您的数组。这样您就可以随时检索它们。

    至于将它们存储在共享首选项中,您不能真正将数组存储在 SharedPreferences 中。您最好的选择是可能将它们保存到数据库中。但是,如果您不关心字符串的存储顺序,或者它们是否映射到任何内容,则可以使用 putStringSet()

    【讨论】:

    • 我正在使用 sqlite。该应用程序几乎完成了,我需要的是能够检查列表视图的内容,如果当前字符串等于或包含列表视图行中的任何值,然后做一些事情(希望有意义)..它填充列表视图的用户,因此它可能有 1 个项目或 100 个
    • 我不关心存储在其中的订单,我对此还是很陌生,并且不确定我将如何使用 putStringSet() 你知道这方面的任何工作示例吗?
    • 我不知道任何例子。但这是非常简单的事情。您只是不熟悉套装或其他东西吗?
    • 不,我不是,就像我说的我还是很新的,看看 putStringSet() 是否仅适用于 3.0 及更高版本?我的目标是 2.2
    • 是的,看起来这仅适用于 3.0 及更高版本。因此,您必须将这些内容持久地存储在数据库中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 2020-10-02
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多