【问题标题】:update view when preference changed in PreferenceActivity.onResume (Android)在 PreferenceActivity.onResume (Android) 中更改偏好时更新视图
【发布时间】:2010-06-25 13:24:57
【问题描述】:

我正在尝试使布尔首选项与内容提供程序中的值保持同步,并且除了这个问题之外都取得了很好的成功。当我在 PreferenceActivityonResume() 方法中设置首选项时(因为值可能已在内容提供程序中更改),视图中的复选框仍然反映了 pre-onResume 值。

就我而言,这种偏好可能完全是虚拟的,而不是持久的,但如果它需要持久以使轮子转动,那也没关系。最终目标是我的应用首选项中的一个复选框,它反映和更新内容提供者中的值。

【问题讨论】:

    标签: android model-view-controller preferences


    【解决方案1】:

    我怀疑PreferenceActivity 首先在onRestoreInstanceState() 方法中设置复选框,然后在生命周期的后期调用您的onResume() 方法。虽然您更改了偏好值,但复选框同步代码已经完成。

    所以也许您可以覆盖onRestoreInstanceState(),更新首选项值,然后最后调用super.onRestoreInstanceState()

    【讨论】:

    • 每次 Activity 返回可见性时都会调用 onRestoreInstanceState() 吗?我的印象是它可以直接从 onPause() 到 onResume()。
    • 没有骰子。从暂停返回时,似乎没有调用 onRestoreInstanceState()。
    • 看起来没有注册到SharedPreferences的更改监听器,所以当你直接编辑Preference时,UI层永远不会听到它。我会坚持下去。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2011-12-09
    相关资源
    最近更新 更多