0

我有两个名称和网址的编辑文本。按“保存”按钮后,我想保存这些信息。

所以我决定使用 SharedPreferences 来存储它,没关系。

SharedPreferences addActivityPrefs = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = addActivityPrefs.edit(); editor.putString("name", name.getText().toString()).commit(); editor.putString("url", url.getText().toString()).commit();

但我的问题是,当我想存储其他值时,它会覆盖我以前的值,我想保留所有这些值。

这是我的 xml 文件:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
     <string name="url">http://Google.co.uk</string>
     <string name="name">BBC world news feed</string>
</map>

我的目标是保存许多对名称-url,例如 http://www.google.co.uk GOOGLE

<map>
    <string name="url">http://www.yahoo.co.uk</string>
    <string name="name">YAhoo</string>
</map>

等等等等。

4

2 回答 2

0

您可以使用 url 和名称创建 json 对象并将它们放入一个 jsonArray 中,您可以将其作为字符串提交,或者创建您的对象来存储名称和 url,将其放入列表中,然后只需序列化/反序列化列表并将其放入首选项。

PS:在放置两个/所有值后仅调用一次提交,最好不要从 UI 线程调用一次,或者只调用一次 apply()。

于 2013-03-23T19:41:58.497 回答
0

您可以将数组存储为字符串并保存,或者您可以为每个项目创建一个新键,所以有

  1. 位置1
  2. 位置2
  3. 位置3

要执行第二种方法,您可以查看以下问题:

首选项中的Android商店数组

我也会有一个带有已保存项目数量的键,因此您可以加载该键,递增,保存,然后使用新计数器作为新键的名称,所以location + cntr

于 2013-03-23T19:42:29.343 回答