[英]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.