gpt4 book ai didi

android - Android 动态偏好列表下的嵌套 PreferenceScreens

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:51 24 4
gpt4 key购买 nike

我正在尝试创建一个带有动态条目列表的首选项屏幕,当单击每个条目时,我有另一个首选项屏幕。例如,考虑一个邮件帐户列表,每个帐户都有可用的帐户设置。

虽然我可以仅使用 PreferenceScreens 创建我想要的嵌套,但如果不在代码中为每个条目创建子首选项结构,则无法轻松扩展到多个条目。

我在整个 Android UI 中看到了几种不同的变体。

是否有推荐的方法来创建这样的结构?

可能性包括:

  1. 单独、独立的 Activity
    可以工作,但在我看来很乱

  2. 嵌套,代码创建 PreferenceScreens
    维护很麻烦,这意味着首选项不再存储为 XML fragment

  3. 嵌套、膨胀的 PreferenceScreens
    我找不到将另一个 XML 文件展开为子树的方法

  4. 一个“子”PreferenceScreen,每个 PreferenceScreen 使用 setPreferenceScreen() 显示
    我找不到隐藏"template"PreferenceScreen 的方法,它会破坏导航。

示例 XML:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/prefs_title">
<EditTextPreference android:key="add_console"
android:title="@string/prefs_add_console"></EditTextPreference>
<PreferenceCategory android:title="@string/prefs_consoles_title"
android:key="list">
<PreferenceScreen android:summary="http://cctv.icode.co.uk/"
android:title="iCode Console">
</PreferenceScreen>
<PreferenceScreen android:summary="http://test.icode.co.uk/"
android:title="Test Console">
</PreferenceScreen>
</PreferenceCategory>
<PreferenceScreen android:title="Console (template)"
android:key="console">
<EditTextPreference android:title="@string/prefs_console_host"
android:summary="@string/prefs_not_set" android:key="host"></EditTextPreference>
<CheckBoxPreference android:title="@string/prefs_console_auth"
android:summary="@string/prefs_console_auth_summary" android:key="auth"></CheckBoxPreference>
<EditTextPreference android:shouldDisableView="true"
android:title="@string/prefs_console_authuser" android:key="authuser"
android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference>
<EditTextPreference android:title="@string/prefs_console_authpass"
android:key="authpass" android:dependency="auth" android:summary="@string/prefs_not_set"></EditTextPreference>
<CheckBoxPreference android:title="@string/prefs_console_pair"
android:summary="@string/prefs_console_pair_summary" android:key="pair"></CheckBoxPreference>
</PreferenceScreen>
</PreferenceScreen>

我希望 list 下的条目是动态的,并在每个条目下显示 console 首选项。

欢迎所有其他想法。

谢谢

最佳答案

您是否尝试过将动态 XML 文件包含到用于首选项的主要文件中?

此技术在这两篇文章中有详细介绍:

http://www.aslingandastone.com/2010/dynamically-changing-android-views/

http://android-developers.blogspot.com/2009/02/android-layout-tricks-2-reusing-layouts.html

他们解释了如何做您在第 3 点中提出的要求:

Nested, inflated PreferenceScreens

基本上,想法是使用这个简单的标记将另一个 XML 文件包含到现有文件中:

<include
android:id="@+id/layout_to_nest"
layout="@layout/layout_to_nest" />

我不知道你是否尝试过,但如果没有,似乎值得一试!

关于android - Android 动态偏好列表下的嵌套 PreferenceScreens,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4788713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com