簡體   English   中英

如何監聽片段中的首選項更改?

[英]How to listen for a preference change in a fragment?

很多類似的問題,但我仍然找不到答案。 所以我有一個片段,我想聽取PreferenceActivity變化。

文檔說在onResume()注冊監聽器並在onPause()取消注冊:

為了在活動中進行適當的生命周期管理,我們建議您分別在onResume()和onPause()回調期間注冊和注銷SharedPreferences.OnSharedPreferenceChangeListener:

我假設它們指的是在PreferenceActivity onResume/onPause方法中注冊監聽器,因為如果你在Fragment的onPause()取消注冊監聽器,那么它將不會監聽這些更改。

那么相反的解決方案是 - 在onPause()注冊並在onResume()取消注冊?

謝謝!

PreferenceActivity不是通知首選項的更改,而是它自己的SharedPreferences PreferenceActivity是用於訪問SharedPreferences的meare用戶界面。

因此,如果您的片段需要監聽SharedPreferences更改,則應該注冊更改。 換句話說,讓你的片段實現OnSharedPreferenceChangeListener並在片段onResume上注冊這些更改,並按照文檔說明取消注冊onPause

您還需要在片段onResume上加載首選項,這樣當它繼續onPause然后onResume時,將加載首選項的當前狀態。

另請參見https://stackoverflow.com/a/13596569/665823

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM