checkboxPreference中的自定义复选框 - summaryOn&的总结

时间:2015-03-12 08:26:45

标签: android checkboxpreference

我想稍微更改一个默认的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”。当我使用图像而不是复选框时,它工作正常 - 单击图像会导致更改摘要。为什么它不适用于复选框?我该怎么做才能恢复默认行为?

1 个答案:

答案 0 :(得分:1)

有必要添加一行:

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

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