在android活动中发出阅读偏好

时间:2010-12-25 18:37:06

标签: java android

我正在尝试在Java应用程序中使用PreferenceActivity,并且我能够调出一个屏幕来修改首选项,但我无法在同一个App中的其他活动中阅读首选项。

我在xml /文件夹下有一个名为default_values.xml的xml文件,它只包含一个首选项。

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android">


<EditTextPreference
        android:key="json_url_pref"
        android:defaultValue="@string/json_url"
        android:title="@string/title_edittext_preference"
        android:summary="@string/summary_edittext_preference"
        android:dialogTitle="@string/dialog_title_edittext_preference" />


</PreferenceScreen>

这是我试图在我的Activity中使用的代码来读取首选项:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(EarningsActivity.this);
String tmp = sp.getString("json_url_pref","-1");

sp.getString(...)总是返回-1。

我认为这是一个上下文问题,由于某些原因,此活动无法访问应用程序首选项(至少我的目的是让应用程序中的所有活动都能看到首选项)。

1 个答案:

答案 0 :(得分:2)

您传递给getDefaultSharedPreferences()的上下文应与处理您的首选项的PreferenceActivity子类位于同一个包中。你的代码就是这种情况吗?