微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为首选项创建自定义布局

如何解决为首选项创建自定义布局

| 我正在尝试创建用于管理首选项的自定义布局。我知道
PreferenceActivity
提供了标准和推荐的布局,但是如果我想添加
Button
,我怎么能得到呢? 我打算设计该应用程序,以便当用户触摸主活动屏幕上的某个项目时,它将转到用户可以启用的选项的“子菜单”,该子菜单随后出现在下一个屏幕上(必须是在这个线性进程中)。用户每次使用该应用程序时都必须进行设置。目前,我正在考虑使用标准的“ 0”来表示此选项子菜单。 也许这不是正确的方法? 编辑:谷歌搜索时,我忽略了解决方案。如何在PreferenceScreen中添加按钮     

解决方法

        您始终可以创建自定义首选项布局项目,并在PreferenceActivity中使用它。例如,我这样做:
<?xml version=\"1.0\" encoding=\"utf-8\"?>
<LinearLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"
    android:layout_width=\"fill_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\" />

        <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=\"2\" />

        <ImageView android:id=\"@+id/ImageView01\"
            android:layout_width=\"wrap_content\"
            android:layout_height=\"wrap_content\"
            android:src=\"@drawable/go\"
            android:layout_alignParentRight=\"true\" />

    </RelativeLayout>

    <!-- Preference should place its actual preference widget here. -->
    <LinearLayout android:id=\"@android:id/widget_frame\"
        android:layout_width=\"wrap_content\"
        android:layout_height=\"fill_parent\"
        android:gravity=\"center_vertical\"
        android:orientation=\"vertical\" />

</LinearLayout>
它有些浪费,但基本上会创建2行(标题,副标题),并在右侧显示图像。您可以将ImageView替换为Button,然后一切就绪。然后,在
xml/prefs.xml
文件中为个人首选项设置布局,如下所示:
<Preference
    android:title=\"@string/label_pref_version\"
    android:key=\"@string/pref_version\"
    android:layout=\"@layout/pref\" />
之后,在您的活动代码中触发
findViewById
,并将一个侦听器附加到该按钮。如果您在“活动”中有多个按钮,则可能还需要做更多的工作,但这不应是不合理的。 您可以在此处找到源代码:https://android.googlesource.com/platform/frameworks/base/+/master/core/res/res/layout/preference.xml     ,           我打算设计该应用程序,以便当用户触摸主活动屏幕上的某个项目时,它将转到用户可以启用的选项的“子菜单”,该子菜单随后出现在下一个屏幕上(必须是在这个线性进程中)。 这听起来像是嵌套的
PreferenceScreen
。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。