自动为自定义首选项设置标题和摘要

时间:2017-04-13 00:22:40

标签: android android-preferences

我在设置活动中使用自定义布局制作了自定义对话框首选项。这里的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:custom="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?android:attr/listPreferredItemHeight"
    android:gravity="center_vertical"
    android:paddingEnd="?android:attr/scrollbarSize"
    android:background="?android:attr/selectableItemBackground"
    >
    <ImageView
        android:id="@android:id/icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="0"
        />
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="15dip"
        android:layout_marginEnd="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:maxLines="1"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:ellipsize="marquee"
            android:fadingEdge="horizontal"
            />
        <TextView
            android:id="@android:id/summary"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@android:id/title"
            android:layout_alignStart="@android:id/title"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:textColor="?android:attr/textColorSecondary"
            android:maxLines="4"
            />
    </RelativeLayout>

    <!-- ... -->
</LinearLayout>

所有内容都会显示,但标题和摘要即使拥有@android:id也不会显示任何值。这似乎适用于某些人,但不适合我。

我从这里获取了我的代码:layoutclassxml preference。如果仔细观察,没有做任何事情来将标题和摘要视图链接到xml首选项文件值,但它们是。怎么样? 我在谈论android:titleandroid:summary值。

我不会添加自定义首选项代码,但问题不应该存在。我有4个构造函数,我正确使用setLayoutResource

2 个答案:

答案 0 :(得分:2)

通常在偏好设置中,您应在摘要中添加“%s”

机器人:摘要= “%S”

答案 1 :(得分:0)

问题是LinearLayout没有方向。如果我添加android:orientation="vertical",一切都会正确显示。