android – 如何在细节PreferenceFragment中加载相同的屏幕首选项

android – 如何在细节PreferenceFragment中加载相同的屏幕首选项,第1张

概述我正在尝试做类似 Android平板电脑中的设置首选项. 当我单击“更多”时,“无线和网络”首选项屏幕显示在右侧片段上,而不是触摸“VPN”,在同一片段中打开“VPN”首选项屏幕. 我怎样才能做到这一点 ? 这是我的偏好xml <PreferenceScreen android:title="Title A"> <PreferenceScreen android:title="TI 我正在尝试做类似 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

编辑*

这是我的活动

public class SettingsActivity extends PreferenceActivity {    @OverrIDe    public voID onBuildheaders(List<header> target) {        loadheadersFromresource(R.xml.preference_headers,target);    }}

我没有布局,所以我怎么知道我的主片段ID是什么,我的细节片段ID是什么?

解决方法 简短示例,定义PreferenceActivity,并为主要类别提供头文件:

类设置活动:

public class SettingsActivity extends PreferenceActivity {    @OverrIDe    public voID onBuildheaders(List<header> target) {        super.onBuildheaders(target);        loadheadersFromresource(R.xml.headers,target);    }}

文件/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>

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

class PrefFragment:

public class PrefFragment extends PreferenceFragment {    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addPreferencesFromresource(R.xml.prefs);    }}

文件/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>

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

SubPrefFragment类:

public class SubPrefFragment extends PreferenceFragment {    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        addPreferencesFromresource(R.xml.sub_prefs);    }}

文件/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将自动显示所有子片段.

结果:

主要偏好片段:

替换为子PreferenceFragment,在相同的标题下:

总结

以上是内存溢出为你收集整理的android – 如何在细节PreferenceFragment中加载相同的屏幕首选项全部内容,希望文章能够帮你解决android – 如何在细节PreferenceFragment中加载相同的屏幕首选项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1137289.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存