9

この例から:

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

「true」の戻り値は何をしますか? API ドキュメントには、値が「true」の場合にクリックが処理されたことを示すと記載されていますが、それは実際にはどういう意味ですか? 渡された設定のエディターが呼び出されず、代わりにカスタム エディターを使用できることを意味すると考えましたが、私の実験では、どちらの状態でも既定のエディターが呼び出されると結論付けています。

4

2 に答える 2

9

OnPreferenceChangeListener.onPreferenceChangeメソッドのドキュメントにあるように:

Trueを返し、設定の状態を新しい値で更新します。

このメソッドは、新しい値を設定に永続化する前に実行されます。falseを返すと、値は保持されません。trueを返すと、永続化されます。

于 2013-03-21T11:31:30.347 に答える
7

これは、誰かがプリファレンスをクリックすると、リスナーがクリックに対処する機会があることを意味します。

クリックを処理すると、true が返されます。

クリックを処理しない場合、つまりクリックされたときに何もしない場合は、false を返すことができます。システムは、その設定のオンクリックをリッスンしている次のリスナーにクリックを渡します。

クリックを聞いて処理しない例は考えられません。

于 2013-01-08T12:13:08.713 に答える