0

我正在尝试学习如何为 android 制作动态壁纸。我已经让它工作了,现在我想添加一些偏好。所以,我创建了一个偏好活动,并按照我能找到的所有示例进行操作。

我可以很好地捕获 ListBoxPreferences,但是当复选框被更改时,永远不会调用“onSharedPreferenceChanged”方法。

是否需要添加额外的代码来捕获复选框更改?是否有在首选项中进行复选框的最佳实践方式?

两天来我一直在努力解决这个问题,任何帮助将不胜感激!

谢谢!

4

2 回答 2

0

您是否注册接收 onSharedPreferenceChanged 回调?

将此添加到您的主要活动的 onCreate 方法(并确保实现 onSharedPreferenceChanged):

PreferenceManager.getDefaultSharedPreferences(getBaseContext()).registerOnSharedPreferenceChangeListener(this);
于 2010-11-23T21:00:54.330 回答
0

@Josh - 好答案。

为了完整起见,我想补充一点,您应该进行设置,以便在 PreferenceActivity 的 onResume() 方法中注册更改并在 onPause() 方法中取消注册。

这个问题的答案有一个很好的代码示例,取自库存的 Android 示例程序。

或者,您还可以在活动的 onCreate() 中为每个首选项注册侦听器,并分别处理它们上的事件。

于 2010-11-23T21:12:55.187 回答