我正在努力学习如何为Android做动态壁纸。我已经有了它的工作,现在我想添加一些偏好。所以,我创建了一个偏好活动,并按照我能找到的所有示例进行了操作。
我可以很好地捕获ListBoxPreferences,但是当复选框被更改时,永远不会调用'onSharedPreferenceChanged'方法。
是否需要添加额外的代码来捕获复选框更改?是否有在偏好中执行复选框的最佳实践方法?
我已经对这个问题猛烈抨击了两天,任何帮助都会非常感激!
谢谢!
答案 0 :(得分:0)
您是否已注册接收onSharedPreferenceChanged回调?
将此添加到主活动的onCreate方法(并确保实现onSharedPreferenceChanged):
PreferenceManager.getDefaultSharedPreferences(getBaseContext()).registerOnSharedPreferenceChangeListener(this);
答案 1 :(得分:0)
@Josh - 很好的答案。
为了完整起见,我想补充一点,你应该进行设置,以便在PreferenceActivity的onResume()方法中注册更改并在onPause()方法中取消注册。
this question的答案有很多来自Android示例程序的代码示例。
或者,您也可以为活动的onCreate()中的每个首选项注册侦听器,并分别处理它们上的事件。