无法从preference.xml检索Android首选项

时间:2014-07-23 10:49:52

标签: android-fragments android-preferences

我一直在寻找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>

阵列 现在这只会输出文本“偏好是未知的”,这显然意味着它无法找到值。但我不明白为什么。

1 个答案:

答案 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>

这让我疯了,所以再次感谢!