我一直在寻找Android的偏好,但我想我一定是搞错了。 我的基本想法是有一个preference.xml文件(位于res / xml中),它存储了一堆数据,包括ListPreference等。 我在XML中设置了默认值,但是当我尝试在单独的片段中检索值时,似乎找不到首选项。
片段中的函数代码:
public static void attemptToAddToCalendar(final Context context, final SessionEntity session){
SharedPreferences sharedPreferences = context.getSharedPreferences("preferences", Context.MODE_PRIVATE);
Toast.makeText(context, "preferences are" + sharedPreferences.getString("pref_addToCalendarAutomatically-list", "Unknown"), Toast.LENGTH_LONG).show();
preferences.xml的代码;
<ListPreference
android:key="pref_addToCalendarAutomatically-list"
android:entries="@array/pref_ARaddToCalendarAutomatically"
android:entryValues="@array/pref_ARaddToCalendarAutmaticallyValues"
android:defaultValue="2"
android:summary="Add favorites to calendar"
android:title="Calendar Options" ></ListPreference>
</PreferenceCategory>
阵列 现在这只会输出文本“偏好是未知的”,这显然意味着它无法找到值。但我不明白为什么。
答案 0 :(得分:0)
感谢您的评论!这确实只是布局。事后看来,这很明显,但我有点盲目......
对于遇到同样事情的人,我修改了我的代码如下:
片段功能:
public static void attemptToAddToCalendar(final Context context, final SessionEntity session){
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
Toast.makeText(context, "preferences are " + sharedPreferences.getString("prefAddToCalendarAutomaticallylist", "Unknown"), Toast.LENGTH_LONG).show();
相应的XML:
<ListPreference
android:key="prefAddToCalendarAutomaticallyList"
android:entries="@array/prefARaddToCalendarAutomatically"
android:entryValues="@array/prefARaddToCalendarAutomaticallyValues"
android:defaultValue="2"
android:summary="Add favorites to calendar"
android:title="Calendar Options" >
</ListPreference>
这让我疯了,所以再次感谢!