2014-10-02 67 views
0

我不明白從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()); 

感謝您的努力......

回答

1

爲什麼?這是非常簡單的:

listPref.getValue()應該得到你實際上已經獲得的參考提供的當前選擇的項值來自您的PreferenceScreen的ListPreference。

ListPreference documentation link

Link to a simple example

+0

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