Как получить выбранный вариант из ListPreference? - PullRequest
5 голосов
/ 20 марта 2012

У меня есть ListPreference, и он содержит, например, 5 опций, и я хочу сохранить одно из этих значений в SharedPreferences, когда пользователь выбирает его. Как я могу это сделать?

кстати. Я знаю, как сохранить значение в SharedPreferences, но я не знаю, как получить это значение, когда пользователь выбирает одну из них.

Ответы [ 3 ]

8 голосов
/ 20 марта 2012
OnPreferenceChangeListener listener = new OnPreferenceChangeListener() {    
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        // newValue is the value you choose
        return true;
    }
};

listPreference.setOnPreferenceChangeListener(listener);
2 голосов
/ 03 января 2016

Я получаю доступ к своему, как это .. Пожалуйста, посмотрите пример ниже

В моем файле 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>

my 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", "");
1 голос
/ 20 марта 2012

В вашем XML-файле вы предоставляете ключ SharedPreferences для своего списка.

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

Каждый раз, когда пользователь выбирает элемент из списка, он сохраняется в SharedPreferences по умолчанию

...