2011-12-07 18 views
1

リストの設定はいくつかありますが、リストから個々の値を保存する方法はわかりません。どうすればいいのですか?ここで私はAndroidのlistpreferences、個々の設定を保存する方法

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

これは通常自動的です。 「値」列は一方で、環境設定で保存された(文字列)の値を指定

<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> 

<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で:お好みの画面のXMLでは、あなたはこのような何かを持っている必要があります「Entries」配列は、ユーザに表示される項目のテキストを指定する。ユーザがアイテムを選択するたびに、「値」配列内の対応する値が、指定されたキー(この例では「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");