2011-12-07 183 views
1

我有一些列表首選項,但我不知道如何保存列表中的各個值。我該怎麼做?以下是我有Android列表首選項,如何保存個人首選項

http://i41.tinypic.com/dh4gvo.png

Preference customPref = (Preference) findPreference("notificationPref"); 
    customPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { 

     public boolean onPreferenceClick(Preference preference) { 

      SharedPreferences customSharedPreference = getSharedPreferences(
        "notifications", Activity.MODE_PRIVATE); 
      SharedPreferences.Editor editor = customSharedPreference 
        .edit(); 
      editor.putString("notification", 
        "The preference has been clicked"); 
      editor.commit(); 
      return true; 
     } 

    }); 

我的列表中,單擊監聽器只對列表中的首選項頁面的主項,但不是在彈出本身的項目。如何保存在彈出窗口中選擇的選項?

回答

4

這通常是自動的。在你的個人偏好屏幕的XML,你應該有這樣的事情:

<ListPreference android:title="@string/Title" 
    android:summary="@string/Summary" 
    android:key="PreferenceKey" 
    android:defaultValue="VALUE_2" 
    android:entries="@array/Entries" 
    android:entryValues="@array/Values" /> 

而且在strings.xml:

<string name="Value1">Text for value 1</string> 
<string name="Value2">Text for value 2</string> 
<string name="Value3">Text for value 3</string> 

<string-array name="Entries"> 
      <item>@string/Value1</item> 
      <item>@string/Value2</item> 
      <item>@string/Value2</item> 
</string-array> 
<string-array name="Values"> 
      <item>VALUE_1</item> 
      <item>VALUE_2</item> 
      <item>VALUE_3</item> 
</string-array> 

「值」數組指定保存在首選項(串)值,而「條目」數組指定顯示給用戶的項目文本。每次用戶選擇一個項目時,「Values」數組中的相應值將保存到指定鍵下的偏好設置(本例中爲「PreferenceKey」)。

+0

我怎麼讀sharedpreferences然後將這些價值觀? – CQM

+0

我使用PreferenceManager.getDefaultSharedPreferences(context).getString(「key」,「default_value」)。活動是一種上下文,通常情況下,您可以將「this」作爲上下文。 – Anasthase

+0

謝謝!你最近的評論爲我工作:) – CQM

2

你可以這樣寫的喜好......

SharedPreferences sharedPreferences = getPreferences(MODE_PRIVATE); 

String strSavedMem1 = sharedPreferences.getString("key", "Default Value");