启动特定PreferenceScreen的意图

时间:2014-06-04 17:09:06

标签: android android-preferences

在我的应用中,我有PreferenceActivity,其中包含PreferenceFragment,其中包含从addPreferencesFromResource(...)的XML文件添加的首选项。首选项层次结构如下所示(稍微简化):

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

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory android:title="@string/pref_header_general">
        <PreferenceScreen
            android:title="My team"
            android:key="button_my_team_settings_key">

            <EditTextPreference
                android:title="Set team number"
                android:key="@string/preference_my_team"
                android:persistent="true"
                android:inputType="number"/>
        </PreferenceScreen>
    </PreferenceCategory>

</PreferenceScreen>

从我的应用中的其他地方,我想在我的偏好中链接到特定的PreferenceScreen,特别是&#34;我的团队&#34;。 Android平台本机是否支持此功能?或者我是否必须通过意图发送所需的PreferenceScreen,然后手动处理切换到相应的屏幕?

1 个答案:

答案 0 :(得分:0)

您可以从其他地方发送意图来执行相同的操作,但您必须进行一些更改。首先,在单独的 xml 文件中创建一个新的 Fragment 类,其中包含以下内容:

<PreferenceScreen
    android:title="My team"
    android:key="button_my_team_settings_key">

    <EditTextPreference
        android:title="Set team number"
        android:key="@string/preference_my_team"
        android:persistent="true"
        android:inputType="number"/>

</PreferenceScreen>

(我已经从您自己的代码中提取了这一部分。) 接下来,在您的代码中,对于根首选项屏幕,将内部 PreferenceScreen 替换为以下内容:

<Preference
    android:title="My Team"
    app:fragment="com.packagename.FragmentClassYouMade"/>

现在,您可以链接到 Fragment 而不是 Subscreen。同一 Activity 中的 Fragment 可以轻松显示在其他地方。