如何在MultiSelectListPreference顶部显示自定义布局

时间:2015-09-16 20:03:06

标签: android

我想在首选项的顶部创建一个带有“全选”功能的自定义MultiSelectListPreference。 我通过扩展MultiSelectListPreference并设置全部选择布局来尝试相同的操作,但是选择所有布局都位于列表首选项的底部,如附图所示。

enter image description here

Here is code snippet -

1。主要偏好文件 -

<?xml version="1.0" encoding="utf-8"?>
    <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
        <PreferenceCategory android:title="Interfaces">
            <com.samsung.trafficstats.settings.InterfacePreference
                android:defaultValue="@array/empty_array"
                android:dialogTitle="All Interfaces"
                android:key="all_interfaces"
                android:summary="show all interfaces" />
        </PreferenceCategory>
    </PreferenceScreen>

我在运行时填充这些条目和值。

  1. 我想在multiSelectPreference顶部设置“select_all布局文件” -

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_weight="1"
        android:text="Select All"
        android:textSize="17sp" />
    
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="15dp" />
    

  2. 3.Custom Preference file -

    public class InterfacePreference extends MultiSelectListPreference{
    
        public InterfacePreference(Context context, AttributeSet attrs) {
            super(context, attrs);
            setDialogLayoutResource(R.layout.select_all_layout);
            setPositiveButtonText("save");
            setNegativeButtonText(android.R.string.cancel);
        }
    }
    

    有没有办法在列表顶部显示“全选”布局?

1 个答案:

答案 0 :(得分:0)

我认为您无法编辑首选项默认布局。如果你想要一个自定义布局,你可能必须创建整个布局页面而不使用Android首选项,而是使用ListView。以下是如何创建它的教程Multiple selection ListView with Custom Layout