Ошибка PreferenceActivity: не показывает выбранную опцию после закрытия действия - PullRequest
2 голосов
/ 10 ноября 2011

Значение хорошо сохраняется в SharedPreference, когда я его нажимаю, но оно не отображается, когда я открываю в другой раз PreferenceActivity. Он запускается, если я не ставлю android:entryValues, но я не могу его использовать, потому что есть разница в использовании разных языков для того, чтобы увидеть, какова ценность предпочтения.

¿Есть идеи, что я могу сделать?

Спасибо за чтение.

код:

Меню настроек активность :

public class PreferencesMenu extends PreferenceActivity  
{
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
     super.onCreate(savedInstanceState);
     setDefaultKeyMode(MODE_PRIVATE);

     addPreferencesFromResource(R.layout.preferences);
     getPreferenceManager().setSharedPreferencesName("Gat_Preferences");

 }
}  

некоторые из strings.xml :

    <string-array name="menu_preference_general_order_array">
        <item>Default</item>
        <item>Alphabetical</item>
    </string-array>     
    <string-array name="menu_preference_general_order_values">
        <item>default</item>
        <item>alphabetical</item>
    </string-array>

preferences.xml layout :

<?xml version="1.0" encoding="utf-8"?>
  <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
     ...
<PreferenceCategory android:title="@string/menu_preference_general">
    <ListPreference 
        android:key="list_order"
        android:persistent="true"
        android:title="@string/menu_preference_general_order_title"
        android:summary="@string/menu_preference_general_order_description"
        android:entries="@array/menu_preference_general_order_array"
        android:entryValues="@array/menu_preference_general_order_values"/> 
    </PreferenceCategory>  
</PreferenceScreen>

мод :

Я использую Android 2.1, и я не могу использовать новые настройки фрагментов.

Ответы [ 2 ]

0 голосов
/ 16 ноября 2011

Ваш preferences.xml должен быть в res/xml. Также вам следует присвоить значение по умолчанию

<ListPreference 
    android:key="list_order"
    android:persistent="true"
    android:title="@string/menu_preference_general_order_title"
    android:summary="@string/menu_preference_general_order_description"
    android:entries="@array/menu_preference_general_order_array"
    android:entryValues="@array/menu_preference_general_order_values"
    android:defaultValue="default"
    />
0 голосов
/ 16 ноября 2011

Вы должны сообщить предпочтительному API, какое имя файла вы хотите использовать до загрузки всего.

Вместо этого:

 addPreferencesFromResource(R.layout.preferences);
 getPreferenceManager().setSharedPreferencesName("Gat_Preferences");

Сделайте это:

 getPreferenceManager().setSharedPreferencesName("Gat_Preferences");
 addPreferencesFromResource(R.layout.preferences);

В обозначениях не используйте R.layout.preferences.Вы должны использовать R.xml.preferences, поместив файл в /res/xml, а не в /res/layout.Он работает по-вашему, но не гарантируется, что он будет работать во всех версиях API, поскольку это не стандартный способ работы с файлами настроек XML.

...