有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SharedReferences中的多个值

我试图在一个键下保存两个值,以便在Android中共享首选项。我想这样做的原因是,我可以检查字符串的值,然后替换它。 例如,我希望共享首选项具有(key1、StringA、StringB)。在我的程序中,我想检查textView是否与StringA匹配,如果匹配,则将其替换为StringB。有没有办法通过共享首选项来实现这一点?如果是这样,我将如何实现在一个键下存储两个Sting?如果没有,我有什么更好的方法可以做到这一点?谢谢你的帮助

到目前为止,我检查了textView值,并将其替换为如下共享首选项

if (sharedpreferences.contains(Name)) {
        if (sharedpreferences.getString(Name, "").equals(stringname.getText())) {
            name.setText(sharedpreferences.getString(Name, ""));
            //I want to replace name(which is the textView) with StringB instead.
        }
        else {
            name.setText("Didn't Match");
        }
    }

这就是为什么我想使用两个值,这样用户可以将他们想要的特定文本视图替换为另一个字符串


共 (2) 个答案

  1. # 1 楼答案

    您不能这样做,因为如果在任何地方使用相同的键,它将覆盖值

    但是有一种选择,您可以使用它在一个首选项键中存储多个字符串值,每个值用逗号分隔。然后可以使用convertStringToArray将其转换为字符串数组

    我不建议您这样做,因为您为什么要编写更多代码来存储和操作单个键的值,而不是直接存储不同键的值,并直接与单独的值进行比较

  2. # 2 楼答案

    我不明白为什么,因为你提到你这样做只是因为

    The reason I want to do this is so that I can check a value of a string, and then replace it.

    你给自己施加了不必要的约束。为什么不将字符串存储在不同的键下