如何解决为首选项创建自定义布局
| 我正在尝试创建用于管理首选项的自定义布局。我知道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 举报,一经查实,本站将立刻删除。