[英]Android - do something in activity when preferences change
我有兩個類, CustomerPreferences
extends PreferenceActivity implements OnSharedPreferenceChangeListener
, CustomerActivity
extends Activity
。 在CustomerActivity
,我計算了一些值。 在CustomerPreferences
,我想要監視一個特定的ListPreference
。 當用戶輸入CustomerPreferences
,可呈現通過一個菜單選項來完成CustomerActivity
--and變化是ListPreference
,然后點擊后退按鈕,返回到CustomerActivity
,我要根據新的偏好設置來重新計算自己的價值觀。 如果用戶進入CustomerPreferences
但沒有更改ListPreference
的值,我不想在返回CustomerActivity
時重新計算任何內容。
我怎樣才能做到這一點?
我想,我需要做一些CustomerPreferences.onSharedPreferenceChanged
以及可能CustomerPreferences.onBackPressed
,那么很可能處理東西CustomerActivity
。
您可以在CustomerActivity的onResume()方法中處理更改。 因此,在用戶按下后,在onResume()中,瀏覽您的首選項並重新計算您的值並根據計算的值更改GUI表示。
當然,有時這是不必要的,因為用戶可能沒有改變任何東西。 只要您的計算不太重,就不應該引起關注。
您可以做的另一件事是在共享首選項中設置一個布爾值,例如preferencesChanged,它將在CustomerPreferences.onSharedPreferenceChanged中設置為true。 然后在onResume()中檢查preferencesChanged。 如果是真的你做重新計算。 否則什么都不做。
另一種選擇是使用startActivityForResult()為結果啟動首選項活動。 然后在CustomerActivity中的onActivityResult()中重新計算。 結果值將在CustomerPreferences.onSharedPreferenceChanged中設置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.