从ListPreference获取entryValue并设置更改

时间:2014-10-02 14:54:12

标签: java android listpreference

我不了解从entryValue获取ListPreference。我想将本地化设置为我的应用程序。但必须在setContentView(R.layout.activity_main);之前设置代码。简单地说,我的应用程序是一个多语言应用程序。我该怎么办?如何从entryValue获取ListPreference

这是我的代码:

ListPreference

<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());

感谢您的努力...

1 个答案:

答案 0 :(得分:1)

为什么......这很简单:

listPref.getValue()应该为您提供当前所选的条目值,前提是您实际从PreferenceScreen获得了ListPreference的引用。

ListPreference documentation link

Link to a simple example