我有的PreferenceScreen
個2級樹PreferenceActivity
,類似:PreferenceActivity更新概要
<PreferenceScreen>
<PreferenceScreen android:key="A">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
<PreferenceScreen android:key="B">
<ListPreference/>
<EditTextPreference/>
</PreferenceScreen>
...
</PreferenceScreen>
每個下水平偏好屏幕,例如,A和B中,收集數據的兩個相關片。我希望這些父項目的摘要是兩個子偏好的當前值的組合。
我試着在葉子首選項上添加onPreferenceChangeListener,並從那裏更新摘要,但似乎沒有采用。首選項都在活動範圍內編程方式創建的,所以我在做這樣的事情在的onCreate:
leafListPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
// do some work
prefScreenA.setSummary(/* get new summary based on newValue */);
return true;
}
});
然後我試圖尋找在那裏我可以告知我已經回到了頂級的喜好屏幕的位置從一個子頁面,以便我可以在那一點更新。但是,我很困惑如何顯示較低級別的屏幕。它看起來像實際上是對話框,而不是完整的活動,因爲onPause/onResume在它們之間移動時不會被調用。是否有某種方法可以解決我在返回頂層頁面時將會調用的缺失方法?
我還嘗試添加sharedPreferenceChangeListener,如here所述,但似乎永遠不會被調用。
任何人都對我在這裏失蹤的東西有什麼提示,或者我失蹤的任何更簡單的方法?
感謝您的建議。我不久前就停止了這方面的工作,但當我有機會時,我會試試看。 – 2011-04-06 01:34:10