我正在尝试在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。
我认为这是一个上下文问题,由于某些原因,此活动无法访问应用程序首选项(至少我的目的是让应用程序中的所有活动都能看到首选项)。
答案 0 :(得分:2)
您传递给getDefaultSharedPreferences()
的上下文应与处理您的首选项的PreferenceActivity
子类位于同一个包中。你的代码就是这种情况吗?