PreferenceScreen/ListPreference,移除/隐藏部分菜单。

在不大改代码引用的情况下,如何快速隐藏部分菜单,需要这样操作。
例如xml中的布局文件是这样:

<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/english_ime_settings"
    android:key="english_ime_settings">
    <PreferenceCategory
        android:title="@string/general_category"
        android:key="general_settings">
        <CheckBoxPreference
            android:key="auto_cap"
            android:title="@string/auto_cap"
            android:summary="@string/auto_cap_summary"
            android:persistent="true"
            android:defaultValue="true" />
        <CheckBoxPreference
            android:key="vibrate_on"
            android:title="@string/vibrate_on_keypress"
            android:defaultValue="@bool/config_default_vibration_enabled"
            android:persistent="true" />
       
        <CheckBoxPreference
            android:key="popup_on"
            android:title="@string/popup_on_keypress"
            android:persistent="true"
            android:defaultValue="@bool/config_default_popup_preview" />
        <ListPreference
            android:key="voice_mode"
            android:title="@string/voice_input"
            android:persistent="true"
            android:entryValues="@array/voice_input_modes_values"
            android:entries="@array/voice_input_modes"
            android:defaultValue="@string/voice_mode_main" />
    PreferenceCategory>
    PreferenceScreen>

现在需要隐藏掉android:key=”general_settings”中所有子选项则使用如下语句:

final PreferenceGroup generalSettings =
                (PreferenceGroup) findPreference("general_settings");
                getPreferenceScreen().removePreference(generalSettings);

如果是隐藏general_settings中的部分子选项则使用如下方法:

general_settings.removePreference(findPreference("auto_cap"));

你可能感兴趣的:(代码记忆,控件)