1

我想要一个自定义的 SwitchPreference 布局并将“title”参数传递给它,类似于:

<SwitchPreference
            android:key="@string/key"
            app:passedTitle="@{@string/title}"
            android:layout="@layout/custom_layout"
            android:defaultValue=5 />

这样我就可以为不同的 SwitchPreferences 重用相同的布局,但更改显示的标题。

我知道我可以正常绑定数据如下:

<include
        layout="@layout/custom_layout"
        app:passedTitle="@{@string/title}"

结合这样的自定义布局:

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
            xmlns:tools="http://schemas.android.com/tools" >

    <data>
    <variable
        name="passedTitle"
        type="String"/>
    </data>

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            style="@style/SettingsSubHeader"
            android:text="@{passedTitle}" />

        <!-- Must have this id or else won't save value! -->
        <Switch
            android:id="@android:id/checkbox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"/>

    </RelativeLayout>

</layout>

但是,如果我只是使用SwitchPreference 中的参数设置它们(因为我不能使用),我无法获得passedTitle传递给自定义视图的值。andriod:layout<include>

您知道如何在使用首选项时将值传递给我的自定义布局吗?

4

0 回答 0