Vista personalizable verificable que responde al Selector

Tengo un grupo deFrameLayout que quiero que sea verificable / seleccionable,

Es decir, después de un clic me gustaría elFrameLayout para mostrar comochecked - Cuando vuelva a pulsarlo me gustaría que se convirtiera en ONU.checked. Además, quiero que esta lista visual se describa como de costumbre a través del uso de un<selector>.

Parece que no puedo hacer que esto funcione, no estoy seguro de lo que me estoy perdiendo:

public class CheckableFrameLayout extends FrameLayout implements Checkable {
    private boolean mChecked = false;
    public CheckableFrameLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void setChecked(boolean checked) {
        mChecked = checked;
        refreshDrawableState();
    }

    public boolean isChecked() {
        return mChecked;
    }

    public void toggle() {
        setChecked(!mChecked);
    }
}

El diseño de laCheckableFrameLayout:

<com.test.view.CheckableFrameLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/selector_horizontal"
    android:clickable="true" >

El selector que lo respalda (selector_horizontal.xml):

<item android:drawable="@drawable/selector_vertical_selected" android:state_pressed="false" android:state_checked="true"/>  
<item android:drawable="@drawable/selector_vertical_pressed" android:state_pressed="true" android:state_checked="false"/>
<item android:drawable="@drawable/selector_vertical_normal" android:state_pressed="false" android:state_checked="false"/>

Al usar el código anterior, "state_pressed" funciona bien, pero la vista en sí misma no se está verificando (no es laCheckable código que se llama como descubierto a través de la depuración).

Respuestas a la pregunta(6)

Su respuesta a la pregunta