checkboxPreference 中的自定义复选框 - summary Of 和 summary Of

custom checkbox in checkboxPreference - summaryOn & summaryOf

我想稍微更改一下默认的 checkboxPreference 布局。我使用了其他类似问题的答案,但仍有一件事不起作用。

我有:

<CheckBoxPreference
 android:key="@string/pref_acceptableads"
 android:summaryOff="@string/pref_acceptableads_summary_off"
 android:summaryOn="@string/pref_acceptableads_summary_on"
 android:title="@string/pref_acceptableads_title"
 android:widgetLayout="@layout/checkbox_layout" />

和:

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2006 The Android Open Source Project Licensed under the 
Apache License, Version 2.0 (the "License"); you may not use this file except 
in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 
Unless required by applicable law or agreed to in writing, software distributed 
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES 
OR CONDITIONS OF ANY KIND, either express or implied. See the License for 
the specific language governing permissions and limitations under the License. -->

<!-- Layout for a Preference in a PreferenceActivity. The Preference is able 
to place a specific widget for its particular type in the "widget_frame" 
layout. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="wrap_content"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical" android:paddingRight="?android:attr/scrollbarSize"
android:orientation="horizontal" >

<RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" android:layout_marginLeft="15dip"
    android:layout_marginRight="6dip" android:layout_marginTop="6dip"
    android:layout_marginBottom="6dip" android:layout_weight="1">

    <TextView android:id="@+android:id/title"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge"
        android:ellipsize="marquee" android:fadingEdge="horizontal"
        android:textColor="#FF0000" />

    <TextView android:id="@+android:id/summary"
        android:layout_width="wrap_content" android:layout_height="wrap_content"
        android:layout_below="@android:id/title" android:layout_alignLeft="@android:id/title"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:maxLines="4" />

</RelativeLayout>

<!-- Preference should place its actual preference widget here. -->
<LinearLayout android:id="@+android:id/widget_frame"
    android:layout_width="wrap_content" android:layout_height="match_parent"
    android:gravity="center_vertical" android:orientation="vertical" />

<CheckBox
        android:id="@+id/checkbox"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#FFFFFF"/>        

</LinearLayout>

不幸的是,我的 summaryOn 和 summaryOf 不起作用。没有任何反应,但 "tick" 出现在复选框中。当我使用图像而不是复选框时,它工作正常 - 单击图像会导致摘要更改。为什么它不适用于复选框?我应该怎么做才能恢复默认行为?

需要加行:

android:focusable="false"
android:clickable="false"

到自定义布局 xml 文件中的复选框项目。