如何从ListPreference中选择选项?

Ada*_*dam 5 android preferences selected listpreference

我有ListPreference,它包含例如5个选项,我想在用户选择它时将其中一个值保存到SharedPreferences.我该怎么做?

顺便说一句.我知道如何为SharedPreferences节省价值,但是当用户选择其中一个时,我不知道如何获得该值.

Eth*_*iou 8

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

listPreference.setOnPreferenceChangeListener(listener);
Run Code Online (Sandbox Code Playgroud)


mbo*_*boy 6

我像这样访问我的..请参阅下面的示例

在我的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>
Run Code Online (Sandbox Code Playgroud)

我的 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>
Run Code Online (Sandbox Code Playgroud)

然后我从任何地方获取这样的选定值:

SharedPreferences pref = PreferenceManager
                .getDefaultSharedPreferences(context);
        String END_POINT = pref.getString("SQS_ENDPOINT", "");
Run Code Online (Sandbox Code Playgroud)