我有 ListPreference,它包含例如 5 个选项,我想在用户选择它时将其中一个值保存到 SharedPreferences。我该怎么做?
顺便提一句。我知道如何将值保存到 SharedPreferences,但我不知道当用户选择其中之一时如何获取该值。
我有 ListPreference,它包含例如 5 个选项,我想在用户选择它时将其中一个值保存到 SharedPreferences。我该怎么做?
顺便提一句。我知道如何将值保存到 SharedPreferences,但我不知道当用户选择其中之一时如何获取该值。
OnPreferenceChangeListener listener = new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// newValue is the value you choose
return true;
}
};
listPreference.setOnPreferenceChangeListener(listener);
我像这样访问我的..请参见下面的示例
在我的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", "");
在您的 xml 文件中,您为列表提供 SharedPreferences 键。
<ListPreference
android:key="SHARED_PREFS_KEY"
...
/>
每次用户从列表中选择项目时,它都会保存到默认的 SharedPreferences