2013-03-23 15 views
0

我有兩個名稱和URL的編輯文本。 按「保存」按鈕後,我想保存這些信息。從輸入用戶保存名稱和網站的持久性數據

所以我決定使用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> 

而且我的目標是挽救了許多對名稱,網址像 http://www.google.co.uk GOOGLE

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

等等等等。

+0

爲什麼不你用這個sqlite表? – Waqas 2013-03-23 19:41:16

+0

因爲我有一些要求遵循.. – scamp 2013-03-26 18:59:35

回答

0

您可以存儲陣列作爲一個字符串,並保存,或者你可以爲每個項目的新鑰匙,所以有

  1. LOCATION1
  2. LOCATION2
  3. LOCATION3

要做第二種方法,你可以看看這個問題:

Android store array in preferences

我也有保存的項目數的關鍵,所以你可以加載鍵,增量,保存,然後使用新的計數器作爲新項的名稱,所以location + cntr

0

你可以創建帶有url和name的json對象,並將它們放入一個jsonArray中,你可以將它作爲字符串提交,或者創建你的對象來存儲名字和url,把它放在一個列表中,然後序列化/反序列化列表並把它放在首選項中。

PS:在您將兩個/所有值(最好不是來自UI線程)或僅調用一次apply()後調用commit一次。