9

从这个例子:

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

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

4

2 回答 2

9

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

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

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

于 2013-03-21T11:31:30.347 回答
7

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

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

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

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

于 2013-01-08T12:13:08.713 回答