我想要一个自定义的 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>
您知道如何在使用首选项时将值传递给我的自定义布局吗?