繁体   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