我正在尝试在与PreferenceActivity无关的活动之外使用此代码。我正在尝试这样,以便我可以访问我的偏好值。
Preference prefNotify = findPreference(ACCUWX.Preferences.PREF_TEMPERATURE_NOTIFY);
String currentPrefValue = null;
if (prefNotify instanceof ListPreference) {
ListPreference listPref = (ListPreference) prefNotify;
currentPrefValue = (listPref.getEntry()).toString();
Log.i(DEBUG_TAG, "current pref value in done is " + currentPrefValue);
}
但是我无法在我的类中访问findPreference,因为它没有扩展PreferenceActivity。我试图实例化一个PreferenceManager对象,但也不能这样做。
答案 0 :(得分:2)
添加到thinksteep的答案,您应该从您的活动中执行以下操作:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference(this);
prefs.getString(PREF_KEY, "default");
或类似。
答案 1 :(得分:-2)
我认为你不需要实例化PreferenceManager,我认为你可以做PreferenceManager.findPreference(key);
我现在无法验证这一点,但这里有一个类似讨论的链接{{3} }