如何检测嵌套的首选项屏幕?

时间:2016-09-20 11:12:39

标签: android

我需要为嵌套的PreferenceScreen中的自定义Preference设置一个事件监听器。

我的自定义首选项是一个特殊的复选框,用于自动选择/取消选择一堆CheckBoxPreferences,但是,如果我在单击并显示PreferenceScreen之前尝试设置事件侦听器,则无法获得对复选框I的引用想要设置我的点击监听器。

我似乎无法找到一种只在显示嵌套首选项屏幕时才会调用的方法。我尝试使用.getDialog()并使用它的监听器,但是再次,我得到一个空引用,直到实际显示嵌套的PreferenceScreen。

2 个答案:

答案 0 :(得分:0)

要获取任何首选项的值,只需调用getDefaultSharedPreferences()。你不需要回电。只需加载复选框设置的值。

答案 1 :(得分:0)

我发现这个问题的解决方案是在内部组件被夸大后(在protected View onCreateView(ViewGroup parent)方法中)在源代码中定义自定义首选项的UI侦听器,而不是在我保留的设置活动中得到一个空引用,因为它掌握它太早,我找不到一种方法来检测何时加载了嵌套首选项屏幕。