Получение entryValue из ListPreference и установка изменений

Я не понимаю, как получить entryValue из ListPreference. Я хочу установить локализацию для своего приложения. Но код должен быть установлен до setContentView(R.layout.activity_main);. Просто мое приложение является многоязычным. Что я должен делать? И как получить entryValue из ListPreference?

Вот мой код:

СписокPreference

<ListPreference android:key="pref.language"
            android:title="@string/language"
            android:dialogTitle="@string/select_language"
            android:entries="@array/pref_language_entries"
            android:entryValues="@array/pref_language_values"
            android:defaultValue="en_US"
            android:summary="%s" />

strings.xml

<string-array name="pref_language_entries">
    <item>English</item>
    <item>Indonesian</item>
    <item>Russian</item>
</string-array>

<string-array name="pref_language_values">
    <item>en_US</item>
    <item>in_ID</item>
    <item>ru_RU</item>
</string-array>

Насколько я знаю, этот код используется для изменения локали из действия:

Locale locale = new Locale("entryValue goes here");
        Locale.setDefault(locale);
        Configuration config = new Configuration();
        config.locale = locale;
        getBaseContext().getResources().updateConfiguration(config,
                  getBaseContext().getResources().getDisplayMetrics());

Спасибо за ваши усилия...


person Anggrayudi H    schedule 02.10.2014    source источник


Ответы (1)


Почему... Это довольно прямолинейно:

listPref.getValue() должен предоставить вам текущее выбранное значение записи, если вы действительно получили ссылку на ListPreference из вашего PreferenceScreen.

ссылка на документацию ListPreference.

Ссылка на простой пример.

person Gurusharan S    schedule 02.10.2014
comment
Этот вопрос SO также может помочь. - person Gurusharan S; 02.10.2014