OnPreferenceClickListener:布尔返回值有什么作用?

时间:2013-01-08 12:09:51

标签: android android-preferences

从这个例子:

private static Preference.OnPreferenceClickListener BindToPreferenceClickListener = new Preference.OnPreferenceClickListener() {
    public boolean onPreferenceClick(Preference preference) {
        boolean isHandled = false;
        if (...) {
           isHandled = true;
        }
        return isHandled;
    }
}

'true'的返回值是做什么的? API文档声明该值表示如果“true”处理了点击,但这究竟意味着什么?我认为这意味着没有调用传递首选项的编辑器,而是可以使用自定义编辑器,但我的实验得出结论,默认编辑器在任一状态下都被调用。

2 个答案:

答案 0 :(得分:5)

这意味着当有人点击偏好时,您的听众有机会处理点击。

如果您处理点击,则返回true。

如果您没有处理点击,即单击此处时您没有执行任何操作,则可以返回false,然后系统会将点击传递给正在侦听该首选项的单击的下一个侦听器。 / p>

我想不出一个例子,你会听点击然后不处理它抱歉。

答案 1 :(得分:4)

正如OnPreferenceChangeListener.onPreferenceChange方法文档所说:

  

返回True以使用新值更新Preference的状态。

在将新值保存到首选项之前运行该方法。如果返回false,则不会保留该值。如果您返回true,则会保持不变。