簡體   English   中英

Android - 在首選項更改時執行某些操作

[英]Android - do something in activity when preferences change

我有兩個類, CustomerPreferences extends PreferenceActivity implements OnSharedPreferenceChangeListenerCustomerActivity 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.

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