0

我有一个显示距离和体积的应用程序。我有一个 SettingsFragment,允许我选择距离、英里或公里以及体积、加仑或升的单位。单位之间的更改有效,但不是马上,我必须翻转手机或重置应用程序才能看到更改。我希望设置更改立即反映在主要活动上,但我不确定如何完成此操作。我做了一些研究并找到了一个可能的解决方案:设置指南建议我应该实现 OnSharedPreferenceChangeListener 接口来监听更改。但这是在 PreferenceFragment 上实现的,而不是在不同的活动上实现的。这是一个类似的解决方案

我对监听主要活动设置更改的正确方法以及在更改发生时如何刷新视图感到困惑。谁能澄清一下?

4

2 回答 2

1

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

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

您必须在主要活动中实现公共方法 updateData(...)。

于 2015-03-19T16:24:55.037 回答
0

观察者是解决您问题的好选择。

这里有一个样本。观察者

希望这可以帮助!

于 2015-03-19T18:51:04.547 回答