我有一個PreferenceScreen在一個XML文件中定義是這樣的:setSummary(TXT)
<PreferenceCategory android:title="Choose Days">
<PreferenceScreen android:title="Days of Week" android:key="daysOfWeek">
<CheckBoxPreference android:title="Mondays" android:key="chkMonday"></CheckBoxPreference>
<CheckBoxPreference android:title="Tuesdays" android:key="chkTuesday"></CheckBoxPreference>
<CheckBoxPreference android:title="Wednesdays" android:key="chkWednesday"></CheckBoxPreference>
<CheckBoxPreference android:title="Thursdays" android:key="chkThursday"></CheckBoxPreference>
<CheckBoxPreference android:title="Fridays" android:key="chkFriday"></CheckBoxPreference>
<CheckBoxPreference android:title="Saturdays" android:key="chkSaturday"></CheckBoxPreference>
<CheckBoxPreference android:title="Sundays" android:key="chkSunday"></CheckBoxPreference>
</PreferenceScreen>
</PreferenceCategory>
<PreferenceCategory android:title="Other Settings">
<CheckBoxPreference android:title="Enable" android:defaultValue="true" android:key="enable"></CheckBoxPreference>
</PreferenceCategory>
當我點擊PreferenceScreen:daysOfWeek複選框出現,OG,當我選中或取消選中一個框,onSharedPreferenceChanged被觸發。
這是因爲這樣的:
公共類Muteny擴展PreferenceActivity實現OnSharedPreferenceChangeListener {
和註冊的onResume它在我的.java文件註銷它的onPause。
簡化onSharedPreferenceChanged看起來是這樣的:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
PreferenceScreen daysOfWeek = ((PreferenceScreen)findPreference("daysOfWeek"));
daysOfWeek.setSummary("text for summary");
Toast.makeText(this.getApplicationContext(), "Hello", Toast.LENGTH_LONG).show();
}
的問題是,「daysOfWeek」的總結永遠不會更新。如果我然後切換CheckBoxPreference「啓用」(此時不做任何事情,但觸發更改),摘要會根據我希望在切換「日期框」時更新。
在敬酒的消息是,雖然顯示...
檢查「天盒」時,如何更新我PreferenceScreen的總結?
我試過這些,但似乎無法讓他們工作。 你可以畫一個例子嗎? THX – Smet 2011-03-31 16:27:51
@Smet我用代碼片斷更新了答案,顯示了對onContentChanged()的調用,這似乎是最受歡迎的解決方案。 – slund 2011-03-31 17:46:12
完美! 謝謝! – Smet 2011-03-31 18:39:00