2011-12-30 142 views
3

我想在與PreferenceActivity不相關的活動之外使用此代碼。我正在嘗試這樣做,以便我可以訪問我的偏好的價值。使用PreferenceActivity之外的findPreference(key)

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

我覺得你並不需要實例PreferenceManager,我覺得你可以做PreferenceManager.findPreference(key);我現在無法驗證這一權利,但這裏是有類似的討論PreferenceManager

+0

確認此方法無效。 – tutts 2012-07-06 15:18:05

+0

投票之前,您需要檢查該問題的答案是哪個版本,以及您嘗試了哪個版本。這在大約8個月前已經得到了解答,許多事情的變化可能會改變。 – kosa 2012-07-06 15:27:28

+0

但是,很高興看到您的評論downvote。這對社區有好處。保持。 – kosa 2012-07-06 15:36:03

2

添加到thinksteep的答案,你一個鏈接應該從您的活動中這樣做:

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

或類似的。

相關問題