当我按下它时,该值在SharedPreference中保存得很好,但是当我再次打开PreferenceActivity时它没有显示。 如果我不放android:entryValues
,它就会运行,但我无法使用它,因为使用不同的语言有一些区别,以便查看首选项的值是什么。
¿我知道我该怎么办?
感谢阅读。
代码:
PreferencesMenu 活动:
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 布局:
<?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>
mod :
我使用android 2.1,我不能使用新的片段首选项。
答案 0 :(得分:0)
在加载所有内容之前,您需要告诉首选项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文件的默认方式。
答案 1 :(得分:0)
您的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"
/>