我可以在android中使用SharedReferences存储两个或多个具有相同密钥的值吗?

我可以在android中使用SharedReferences存储两个或多个具有相同密钥的值吗?,android,sharedpreferences,Android,Sharedpreferences,我可以在android中使用SharedReferences存储两个或多个具有相同密钥的值吗?如果没有,请告诉我当许多用户在注册应用程序中注册时,如何存储用户名、名字、密码等值 例: 现在,我想将这些值存储在SharedReferences中,并在以后检索它们。可以使用SharedReference吗?如果没有,请告诉我如何做的其他方式 提前谢谢你。我认为这是不可能的,因为你不知道用户的数量。 你可以试着用逗号分隔用户,但那是站不住脚的 你应该考虑使用SQLite数据库。 然后必须存储用户对象的

我可以在android中使用SharedReferences存储两个或多个具有相同密钥的值吗?如果没有,请告诉我当许多用户在注册应用程序中注册时,如何存储用户名、名字、密码等值

例:

现在,我想将这些值存储在SharedReferences中,并在以后检索它们。可以使用SharedReference吗?如果没有,请告诉我如何做的其他方式


提前谢谢你。

我认为这是不可能的,因为你不知道用户的数量。 你可以试着用逗号分隔用户,但那是站不住脚的

<>你应该考虑使用SQLite数据库。

然后必须存储用户对象的数组列表,首先创建一个类userInfo,然后创建一个数组列表类型的userInfo,然后将数据存储在此列表中,并将一个可序列化的对象放入SharedReferences中

对于您的情况,最好使用SQLIte数据库。但如果您想使用共享首选项,仍然可以。您必须使用带有附加索引的键来记住不同的用户喜好

用户名1:arun

用户名2:约翰


您必须记住用户总数。然后才能维护所有用户。您还可以使用其他数据结构(如hashmap)来维护共享首选项的数据。

您还可以将它们作为字符串存储在名为“registers”的单个键上。将每个寄存器连接到首选项。在每个寄存器之间放置“;”(或您想要的任何其他字符)。然后解析字符串并使用值

键:寄存器

值:“username=john12,first name=john,DOB=06/06/2000;username=mike12,first name=mike,DOB=06/07/2012”

使用String的split方法将为您提供一个寄存器列表作为String

registers.split(";");

使用“,”再次拆分将为您提供每个寄存器的属性。

您不能直接存储这些值(因为后者添加的值将覆盖以前添加的值)但是,您可以始终存储<代码> PARCELSET 并将您的数据放入其中

< p>我想考虑创建<代码> JSONObjs并添加要作为密钥存储的字段:值对。< /P>
json.putString(key, value);
然后,您可以使用
json.toString()
将json对象存储在其字符串表示形式中,然后使用

JSONObject jo = new JSONObject(jsonString);
String value = jo.getString(key);
除了字符串之外,JSONObject还提供不同的数据类型


这实际上取决于要存储多少数据。根据具体情况,我会选择SharedReferences或SQLite实现。

将哈希映射保存到共享首选项中
JSONObject jo = new JSONObject(jsonString);
String value = jo.getString(key);