Используйте findPreference (ключ) за пределами PreferenceActivity - PullRequest
3 голосов
/ 30 декабря 2011

Я пытаюсь использовать этот код вне действия, не связанного с 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, но тоже не могу этого сделать.

Ответы [ 2 ]

2 голосов
/ 30 декабря 2011

Добавляя к ответу thinkteep, вы должны сделать что-то подобное из своей Деятельности:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference(this);
prefs.getString(PREF_KEY, "default");

или подобное.

0 голосов
/ 30 декабря 2011

Я думаю, вам не нужно создавать экземпляр PreferenceManager, я думаю, что вы можете просто сделать PreferenceManager.findPreference(key); Я не могу проверить это прямо сейчас, но вот ссылка с похожим обсуждением PreferenceManager

...