从ListPreference获取entryValue并设置更改

问题描述:

我不明白从ListPreference获取entryValue。我想为我的应用程序设置本地化。但代码必须在setContentView(R.layout.activity_main);之前设置。简而言之,我的应用程序是一个多语言应用程序。我该怎么办?以及如何从ListPreference得到entryValue从ListPreference获取entryValue并设置更改

这里是我的代码:

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

感谢您的努力......

为什么?这是非常简单的:

listPref.getValue()应该得到你实际上已经获得的参考提供的当前选择的项值来自您的PreferenceScreen的ListPreference。

ListPreference documentation link

Link to a simple example

+0

[This SO question](http://*.com/questions/6148952/how-to-get-selected-text-and-value-android-listpreference)可能也有帮助。 – 2014-10-02 15:11:34