2014-10-02 2 views
0

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

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

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

ListPreference documentation link.

Link to a simple example.

+0

[Этот вопрос SO] (http://stackoverflow.com/questions/6148952/how-to-get-selected-text-and-value-android-listpreference) также может помочь. –