我正在使用PreferenceActivity
来设置我对其他BroadcastReciever
的偏好。
虽然使用XML文件制作首选项GUI的框架非常简单,但是我无法找到如何实际使用这些首选项进行操作的方法。特别是:
如何注册我的BroadcastReciever
以收听我的偏好更改?
看起来广播接收者的上下文与活动不同,所以我没有注册到右边SharedPreferences
,因为我不会拦截这些变化。
如果首选项发生变化,我如何在我的PreferenceActivity
中采取行动?我想我不需要注册PreferenceActivity
作为偏好的倾听者,所以必须有更简单的方法。
如何更改适用于偏好设置更改的PreferenceActivity
的用户界面?例如,将首选项的“摘要”属性设置为用户选择的值?
如何启用或禁用某些取决于其他偏好的偏好设置(如CheckBoxPreference
)?因此,用户只有在首先启用该功能时才能编辑这些首选项。
我查看了文档,但没有使用PreferenceActivity
的例子,只是在XML中添加首选项。
我觉得我在这里缺少一些巨大的东西,因为它看起来很简单,但我无法理解......
请尝试回答我的任何问题。
顺便说一句:
我正在为Android 1.6开发,因此无法使用所有新的PreferenceFragment
。
答案 0 :(得分:1)
如何注册我的BroadcastReciever来收听我的偏好变化?
如果在清单中注册BroadcastReceiver
,则不会听取首选项的更改,因为BroadcastReceiver
只会在几毫秒左右。只需阅读onReceive()
期间的最新值。
如果调用BroadcastReceiver
的其他组件注册了registerReceiver()
,则该组件可以通过OnSharedPreferenceChangeListener
和{{SharedPreferences
注册PreferenceManager
注册getDefaultSharedPreferences()
1}}。
看起来广播接收者的上下文与活动不同,所以我没有注册到正确的SharedPreferences,因为我不会拦截这些变化。
这句话毫无意义。
如果首选项发生变化,我如何在PreferenceActivity中采取行动?
通过OnSharedPreferenceChangeListener
和SharedPreferences
检索PreferenceManager
注册getDefaultSharedPreferences()
。
如何更改适合首选项更改的PreferenceActivity的UI?
一般情况下,你没有。欢迎您通过OnSharedPreferenceChangeListener
和SharedPreferences
注册PreferenceManager
注册getDefaultSharedPreferences()
。在那里,您可以通过Preference
通过PreferenceActivity
获取findPreference()
并调整为适合。
如何启用或禁用某些依赖于其他首选项的首选项(如CheckBoxPreference)?因此用户只有在首先启用该功能时才能编辑这些首选项。
根据需要将android:dependency
添加到您的首选项XML。