Sar*_*els 3 java android callback sharedpreferences android-activity
我有两个班级,CustomerPreferences哪个班级extends PreferenceActivity implements OnSharedPreferenceChangeListener和CustomerActivity哪个班级extends Activity.在CustomerActivity,我计算一些值.在CustomerPreferences有一个特别的ListPreference我想监控.当用户输入- CustomerPreferences通过菜单选项打开CustomerActivity- 并更改它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中设置
| 归档时间: |
|
| 查看次数: |
2271 次 |
| 最近记录: |