2012-03-20 12 views
5

私はListPreferenceを持っています。例えば、5つのオプションがあり、ユーザーがそれを選択すると、この値の1つをSharedPreferencesに保存します。どうしたらいいですか?ListPreferenceからどのように選択するのですか?

btw。私はSharedPreferencesに値を保存する方法を知っていますが、ユーザーがそれらの値を選択したときに値を取得する方法はわかりません。

答えて

8
OnPreferenceChangeListener listener = new OnPreferenceChangeListener() {  
    @Override 
    public boolean onPreferenceChange(Preference preference, Object newValue) { 
     // newValue is the value you choose 
     return true; 
    } 
}; 

listPreference.setOnPreferenceChangeListener(listener); 
1

xmlファイルには、あなたのリストにSharedPreferencesキーを提供します。

<ListPreference 
android:key="SHARED_PREFS_KEY" 
... 
/> 

たびに、ユーザは、それがデフォルトのSharedPreferences

2

私はこのような鉱山へのアクセスに保存されているリストから項目を選択して..私のpreference.xmlファイルで

以下の例を参照してください。

<ListPreference 
      android:key="SQS_ENDPOINT" 
      android:dialogTitle="Choose an option please" 
      android:entries="@array/sqsItems" 
      android:entryValues="@array/sqsValues" 
      android:title="SQS Endpoints" > 
     </ListPreference> 

私string.xmlを:

<string-array name="sqsItems"> 
     <item>US East (N. Virginia)</item> 
     <item>Asia Pacific (Singapore)</item> 
     <item>Asia Pacific (Tokyo)</item> 
    </string-array> 
    <string-array name="sqsValues"> 
     <item>sqs.us-east-1.amazonaws.com</item> 
     <item>sqs.ap-southeast-1.amazonaws.com</item> 
     <item>sqs.ap-northeast-1.amazonaws.com</item> 
    </string-array> 

次に、どこからでもこのように選択した値が得られます。

SharedPreferences pref = PreferenceManager 
       .getDefaultSharedPreferences(context); 
     String END_POINT = pref.getString("SQS_ENDPOINT", ""); 
関連する問題