如何在详细信息PreferenceFragment中加载相同的屏幕首选项

2023-12-27

我正在尝试做类似 Android 平板电脑中的设置首选项之类的事情。

当我单击“更多”时,“无线和网络”首选项屏幕将显示在右侧片段上,如果我触摸“VPN”,则会在同一片段中打开“VPN”首选项屏幕。

我怎样才能做到这一点 ?

这是我的偏好 xml

<PreferenceScreen android:title="Title A">
        <PreferenceScreen android:title="TITLE B">
            <PreferenceCategory
                android:title="category">
                <ListPreference android:key="list"
                    android:title="list" android:entries="@array/list_vals"
                    android:entryValues="@array/list_vals1"
                    android:defaultValue="1" android:dialogTitle="list title"
                    android:negativeButtonText="cancel" />
            </PreferenceCategory>
        </PreferenceScreen>
</PreferenceScreen>

问题是我不希望标题为 B 的嵌套首选项屏幕加载到整个屏幕上,我只想加载到正确片段的位置...

注意:到目前为止,我使用此文档来创建我的示例http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders http://developer.android.com/guide/topics/ui/settings.html#PreferenceHeaders

EDIT*

这是我的活动

public class SettingsActivity extends PreferenceActivity {
    @Override
    public void onBuildHeaders(List<Header> target) {
        loadHeadersFromResource(R.xml.preference_headers, target);
    }
}

我没有布局,那么我如何知道我的主片段 id 和我的详细片段 id 是什么?


简短的例子,定义一个PreferenceActivity,并提供主要类别的头文件:

Class SettingsActivity:

public class SettingsActivity extends PreferenceActivity {
    @Override
    public void onBuildHeaders(List<Header> target) {
        super.onBuildHeaders(target);
        loadHeadersFromResource(R.xml.headers,target);
    }
}

File /res/xml/headers.xml:

<?xml version="1.0" encoding="utf-8"?>

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
    <header android:title="Preference Header"
        android:fragment="com.example.SettingsDemo.PrefFragment"/>
</preference-headers>

创建一个PreferenceFragment如中所引用的android:fragment上面,提供自己的首选项文件:

class PrefFragment:

public class PrefFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.prefs);
    }
}

File /res/xml/prefs.xml:

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
 <PreferenceCategory android:title="Preferences">
 <SwitchPreference android:title="Preference" />
    <PreferenceScreen android:title="Sub Preferences"
        android:fragment="com.example.SettingsDemo.SubPrefFragment"/>
 </PreferenceCategory>
</PreferenceScreen>

创建一个孩子PreferenceFragment如中所引用的android:fragment上面,也提供自己的首选项文件:

Class SubPrefFragment:

public class SubPrefFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.sub_prefs);
    }
}

File /res/xml/sub_prefs.xml:

<?xml version="1.0" encoding="utf-8"?>

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="Sub Preferences">
        <CheckBoxPreference android:title="Sub Preference"/>
    </PreferenceCategory>
</PreferenceScreen>

就是这样。这PreferenceActivity将自动显示所有子片段。

Results:

Main PreferenceFragment : enter image description here

Replaced by sub PreferenceFragment , under same header: enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在详细信息PreferenceFragment中加载相同的屏幕首选项 的相关文章

  • Android Studio 模拟器无法加载 Windows 10

    我在 Windows 10 上全新安装了 android studio 其中包含 android api 22 的所有软件包 当我运行模拟器时 我收到以下消息 C Users admin AppData Local Android sdk
  • 将 React Native 应用程序嵌入到现有的 ios/android 应用程序中

    我需要知道是否可以在现有的 ios android 应用程序中 嵌入 一个 React Native 应用程序 而不共享 React Native 应用程序代码 我们目前有一个 React Native 应用程序 它使用一些插件依赖项 并被
  • 使用 HashMap 映射 String 和 int

    我有一个显示国家 地区名称的列表视图 我已将名称作为字符串数组存储在 strings xml 中 称为国家 地区名称 在填充 ListView 时 我使用从 strings xml 读取的 ArrayAdapter String count
  • 从 Android 函数更新 Textview

    有人可以告诉我如何从函数更新 Android Textview 控件吗 我在互联网上进行了深入搜索 看到很多人都问同样的问题 我测试了线程但无法工作 有人有一个简单的工作示例吗 例如 调用一个函数 在循环中运行多次 并且该函数在 TextV
  • Android 偏好设置中的“是”或“否”确认[重复]

    这个问题在这里已经有答案了 我需要在 设置 中实现 重置 选项 单击该设置后 将打开一个简单的对话框 要求确认 我看过了DialogPreference但我似乎无法在任何地方找到好的解决方案或教程 有人可以帮我吗 我是初学者 想法甚至代码都
  • Ionic4 电容器 android livereload?

    是否有可能在带有 livereload 的 Android 设备上运行带有电容器的 ionic 4 应用程序 我已经找了几个小时的答案了 但没有成功 请帮忙 如果使用最新版本 ionic cli 现在有一个命令ionic capacitor
  • Ionic 4:硬件后退按钮重新加载应用程序

    从事项目并陷入问题 硬件后退按钮重新加载应用程序 我在此应用程序中使用 Angular Router 我退出应用程序的代码 ionViewDidEnter this subscription this platform backButton
  • Android 中的处理程序到处理程序与 Messenger 到 Messenger 通信

    问题 使用起来是否 更好 更快且开销更少 Handler http developer android com reference android os Handler html与使用 Handler 通信相比信使 http develop
  • 定时器时间不作为变量改变?

    这是我的代码 private int V Time 1 try final Timer V Timer final Handler V Handler V Timer new Timer V Handler new Handler Loop
  • 如何以编程方式关闭画中画

    我在使用画中画模式时遇到了这个问题 当从 PIP 本身以外的其他位置再次打开 Activity 时 我想关闭 PIP 画中画 不是来自关闭按钮 我想要与 youtube 相同的场景 即当用户单击 PIP 画中画 时 它会打开相同的活动 但是
  • 如何在我的谷歌上嵌入转弯导航

    我想在我的 Android 应用程序中嵌入逐段导航 请给我一个教程或如何执行此操作的想法 提前致谢 如果您不固定使用谷歌地图 您可以使用基于 OpenStreetMap 地图的维基百科版本 的 SDK 有几个不错的 SDK 提供商 skob
  • 从字符串中删除重音符号

    Android 中有没有什么方法 据我所知 没有 java text Normalizer 可以从字符串中删除任何重音 例如 变成 eau 如果可能的话 我想避免解析字符串来检查每个字符 java text NormalizerAndroi
  • Android 导航 DeepLinks - 如何区分使用导航操作进行导航与深层链接

    我有导航操作和深层链接 根据您导航的位置 将您带到某个片段 我想确定是使用了深层链接还是仅使用了导航操作 这正是KEY DEEP LINK INTENT https developer android com reference andro
  • 地理围栏不可用以及如何处理

    我正在 Android 上使用地理围栏 它在大多数手机上都工作正常 但在其中一些上 它不起作用 在我的错误日志中显示 地理围栏不可用 某些用户没有为 Google Play 服务启用位置跟踪 我认为这就是地理围栏在他们的手机上不起作用的原因
  • Meteor:即使设置了 ANDROID_HOME 也未设置

    操作系统 Ubuntu 14 04 框架 流星1 1 0 2 应用名称 Songofy 这是输出meteor install sdk android meteor install sdk android Found Android bund
  • 什么是版本代码主要?和versionCode有什么区别?

    我刚刚发现PackageInfo versionCode https developer android com reference android content pm PackageInfo html versionCode在 Andr
  • Desire HD 中的应用程序崩溃

    由于某些莫名其妙的原因 我的应用程序在 HTC Desire HD 上崩溃了 它在其他手机和模拟器中运行良好 这是崩溃报告 java lang RuntimeException Unable to start activity Compon
  • 手动添加带有依赖pom/iml文件的aar

    由于我无法使用私人 Maven 来共享我的库 因此我正在考虑共享 aar 并导入到另一个项目中 当 aar 和 jar 文件不包含任何依赖项时 就会出现问题 因此 一旦我在android studio中手动导入aar 使用Import JA
  • AsyncTask的并行执行

    An 异步任务单击时执行 List
  • Android 可扩展列表视图随机播放子项

    你好 我正在使用 Android Expandable listview 并用不同的视图在其中膨胀子视图 我遇到的问题是 当我展开视图然后打开另一个父视图时 布局中的子视图会变得混乱并在代码中膨胀错误的布局 这是我的两个项目的示例代码 这是

随机推荐

  • C# 中数据网格的行数和列数

    考虑我有一个数据网格 我需要找到数据网格中的行数和列数 我怎样才能在 C 中做到这一点 The DataGrid Items属性返回一个DataGridItemCollection代表着DataGridItems在数据网格中 Each Da
  • AttributeError:部分初始化的模块“cv2”没有属性“gapi_wip_gst_GStreamerPipeline”(很可能是由于循环导入)

    这种情况突然发生 我能够导入 cv2 但现在导入时出现 AttributeError 部分初始化的模块 cv2 没有属性 gapi wip gst GStreamerPipeline 很可能是由于循环导入 错误 我尝试过的事情 1 卸载并安
  • NuGet-repositories.config

    NuGet新手问题 I saw repositories config被添加到 NuGet 包文件夹中 谁能指导我这个文件的用途是什么 谢谢你 该文件主要是 NuGet 实现细节 不应直接处理 它可能会消失或将来发生变化 但作为参考 它包含
  • 在 python 中更新字典

    我已经被这个问题困扰了很长一段时间 只是无法弄清楚 我只是想能够理解我缺少什么以及为什么需要它 我需要做的是创建一个函数 将每个给定的键 值对添加到字典中 参数 key value pairs 将是 key value 形式的元组列表 de
  • 为什么任务的 Result 属性对于非泛型任务 (C# 4.0+) 不可用?

    我正在尝试掌握 NET 4 0 任务并行库概念 在以下 C 4 0 代码片段中 Task t Task Factory StartNew gt Console WriteLine I am the task return res1 如果不能
  • 我的 Pyflink 设置有什么问题导致 Python UDF 抛出 py4j 异常?

    我正在使用文档中的 flink python datastream 教程 https ci apache org projects flink flink docs master docs dev python datastream tut
  • 如何使用 Cassandra 存储后端删除 Titan 中的图形?

    我使用 Titan 0 4 0 All 在 Ubuntu 12 04 上以共享 VM 模式运行 Rexster 如何正确删除 Titan 中使用 Cassandra 存储后端的图表 我已经尝试过TitanCleanup clear grap
  • 使用 ImageView 时出现内存不足错误

    我正在尝试使用 ImageView 制作壁纸设置应用程序 我知道很难显示一堆图像 特别是当图像为 1920x1080 时 我所做的是制作其他一堆具有较小分辨率 400x200 的图像 这些图像将显示在应用程序中 但是当用户尝试设置时将图像作
  • 如何获取 JSpinner 中所选项目的值?

    我正在制作一个使用最大数量为 30 的 JSpinner 的应用程序 我应该从这个 JSpinner 中选择一个值并将一个字符串粘贴到 JTextField 中 结果将出现在 Textarea 中 当我编译时 我有很多关于该方法的问题jSp
  • Android 和 OpenCV:考虑相机本质和反向投影的相机姿势单应性

    库 OpenCV 目标 Android OpenCV4Android 我尝试计算世界平面 例如监视器屏幕 的单应性以获取相机姿势 对其进行变换并将点重新投影回以进行跟踪任务 我使用 OpenCVs findHomography getPer
  • 带索引二维数组的逗号运算符

    我有这个算法 它是图论 dijkstra 算法的伪代码 首先进行的是基本的 for 循环 visitedSet 0 true visitedSet is a array of bools for int i 1 i lt numberNod
  • 防止 html 元素在分辨率太小时被挤压

    我看到像亚马逊和谷歌这样的网站 当你缩小网络浏览器的宽度时 元素只会挤压到某个点 然后即使你进一步缩小宽度 它也会停止挤压 什么样的技术可以实现这一点 是否有特定的 CSS 属性可以启用此功能 您可能正在看到min width and mi
  • 视图应该设置模型数据吗?

    我只是想弄清楚一个可能很简单的问题 视图应该直接设置模型数据还是只调用更改其自身数据的模型方法 就像软件开发中的其他事情一样 视情况而定 如果您在视图中使用表单输入 并且只需将这些输入中的数据获取到模型中 请直接设置数据 您可以通过多种方式
  • textView.getSelectionEnd() 返回 Samsung Marshmallow 6.0 设备上的起始索引值

    此问题是在以下位置观察到的搭载 Android 6 0 的三星设备仅有的 它在所有其他设备上运行良好 包括运行 Android 6 0 的非三星设备和运行 Android 5 1 及更低版本的三星设备 目前我们还没有任何搭载 Android
  • 调试 - 在 Xamarin.Forms Android 应用程序中引用 .NET 标准 1.4 库 (VS 2017)

    我用的是VS 2017 我有 Xamarin Forms Android 项目 我必须在那里引用一堆 NetStandard 1 4 库 我将所有项目都集中在一个解决方案中 我基本上添加了参考文献并编译了解决方案 没有任何问题 当我从 Ne
  • 从java获取HDFS的文件夹大小

    我必须确定 HDFS 文件夹的大小 其中包含来自 java 的子目录 从命令行我们可以使用 dus 选项 但是任何人都可以帮助我如何使用 java 获得相同的选项 The getSpaceConsumed 函数在ContentSummary
  • 找到登录的gmail用户的电子邮件地址

    我正在开发 chrome 扩展 该扩展仅专注于 Gmail 消息 该扩展名仅在 Gmail 消息中使用 但为此我需要找出登录用户的电子邮件地址 我已经创建了登录功能来使用弹出窗口中的扩展程序 并且我需要 登录用户电子邮件地址 来检查登录扩展
  • vs2010 c# 调试高亮颜色

    场景是我正在vs2010中调试一些C 代码 我停在断点处 我进入一个方法 当前行以黄色突出显示 我认为默认情况下 我在进入该方法之前留下的行现在具有浅灰色背景 如果你有深色文本还不错 但我有白色文本 根本读不懂 所以 我想改变它 但它叫什么
  • 是否可以将一个 ObservableField 绑定到另一个 ObservableField?

    我明白这样做的目的Android 的数据绑定库 https developer android com tools data binding guide html用于观察数据并在数据更改时自动更新的视图 问题 数据是否可以观察其他数据 例如
  • 如何在详细信息PreferenceFragment中加载相同的屏幕首选项

    我正在尝试做类似 Android 平板电脑中的设置首选项之类的事情 当我单击 更多 时 无线和网络 首选项屏幕将显示在右侧片段上 如果我触摸 VPN 则会在同一片段中打开 VPN 首选项屏幕 我怎样才能做到这一点 这是我的偏好 xml