更改设置后如何刷新视图?

How can I refresh view after a setting is changed?

我有一个显示距离和体积的应用程序。我有一个 SettingsFragment,它允许我选择距离单位、英里或公里,以及体积单位、加仑或升。单位之间的更改有效但不是马上,我必须翻转 phone 或重置应用程序才能看到更改。我希望设置更改立即反映在主要 activity 上,但我不确定如何完成此操作。我做了一些研究并找到了一个可能的解决方案:设置 guide suggest that I should implement the OnSharedPreferenceChangeListener interface to listen for changes. But this is implemented on PreferenceFragment and not on a different activity. This is a similar solution.

我很困惑什么是监听主设置更改的正确方法 activity 以及当更改发生时我应该如何刷新视图。谁能澄清一下?

第二个 link 中的答案,使用 onSharedPreferenceChangeListener() 是您所需要的。在片段中设置侦听器,然后通过片段中的调用通知主要 activity:

((MainActivity)getActivity()).updateData(updatedData);

您必须在 activity.

中实现 public 方法 updateData(...)

Observer 是解决您问题的好选择。

这里有一个示例。 OBSERVER

希望对您有所帮助!