复选框preference有自己的布局 [英] CheckBoxPreference with own layout

查看:174
本文介绍了复选框preference有自己的布局的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有preferenceScreen一些preferenceCheckBoxes。我想改变文字颜色和TEXTSIZE的标题和摘要以及对CheckBox图像检查和uncheckes。所以我使用机器人:布局来改变这种属性。

I have PreferenceScreen with some PreferenceCheckBoxes. I want to change the textColor and textSize for title and summary and the images for the CheckBox checked and uncheckes. So I am using android:layout to change this attributes.

我的ChceckBox preference:

My ChceckBoxPreference:

<CheckBoxPreference
    android:layout="@layout/preference_checkbox"
    android:key="temp"
    android:title="@string/title"
    android:summary="@string/summary"
    android:defaultValue="true" 
/>

当我使用安卓widgetLayout 这看起来很奇怪。这是我的preference_checkbox.xml:

When I use android:widgetLayout it looks strange. And this is my preference_checkbox.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="10dp"
>
<TextView 
    android:id="@+android:id/title"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/gray"
    android:textSize="20sp"     
    />
<TextView 
    android:id="@+android:id/summary"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textColor="@color/gray"
    android:textSize="14sp"
    />
</LinearLayout>
<CheckBox
    android:id="@+android:id/checkbox"
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_alignParentRight="true"
    android:layout_marginRight="10dp"
/>  
</RelativeLayout>     

名称与编号 @ +安卓ID /标题及摘要与 @ +安卓ID /摘要是显示出正确的价值观。然而,尽管默认值和id 的复选框@ +安卓ID /复选框工作不正常。它没有显示正确的值,我不能更改保存在preferences值。 不使用任何布局,我可以在整个复选框preference通过触摸改变复选框的值。但现在(我的布局)我只能通过触摸在此复选框改变复选框的值。 我怎样才能使布局复选框preference以正确的方式与所有的功能?

Title with id @+android:id/title and summary with @+android:id/summary are showing correct values. However the checkbox despite of default value and id @+android:id/checkbox is not working properly. It isn't showing correct value and I can't change the value kept in preferences. Without using any layout, I can change value of checkbox by touch at the whole CheckBoxPreference. But now (with my layout) I can change value of checkbox only by touch on this checkbox. How can I make layout for CheckBoxPreference in properly way with all the functionalities?

推荐答案

试试这个为preference_checkbox.xml

Try this as preference_checkbox.xml

<?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">

<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" />

</LinearLayout>

这篇关于复选框preference有自己的布局的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆