2012-03-20 2 views
5

나는 ListPreference를 가지고 있으며, 예를 들어 5 개의 옵션이 있으며 사용자가 그것을 선택할 때이 값 중 하나를 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", ""); 
관련 문제