[android]隐藏PreferenceCategory和Preference的方法

1. 隐藏PreferenceCategory,也就是把这个种类下的子菜单和本分类的title都隐藏,方法如下:

xml文件:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:key="pref_key_title_display_settings" android:title="@string/pref_title_display_settings">
        <Preference android:key="pref_key_chat_wallpaper_for_chat" android:title="@string/pref_chat_wallpaper" /> 
    </PreferenceCategory>

</PreferenceScreen>

Java代码:

    public static final String CHAT_KEY_DISPLAY = "pref_key_title_display_settings";

    public void removeDisplayCategory() {
        PreferenceCategory displayOptions = (PreferenceCategory) findPreference(CHAT_KEY_DISPLAY);
        getPreferenceScreen().removePreference(displayOptions);
    }


2.隐藏Preference,也就是只隐藏一个PreferenceCategory下的一个子菜单,方法如下:

xml文件:

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory android:title="@string/pref_title_display_preference_settings"
        android:key="pref_key_display_preference_settings">
        <Preference android:key="pref_key_chat_wallpaper"
            android:title="@string/pref_chat_wallpaper" />
        <Preference android:key="pref_key_message_font_size"
            android:title="@string/pref_title_message_font_size"
            android:summary="@string/pref_summary_message_font_size" />
        <CheckBoxPreference android:defaultValue="true"
            android:key="pref_key_auto_rotation" android:title="@string/pref_auto_rotation" />
        <CheckBoxPreference android:defaultValue="true"
            android:key="pref_key_show_email_address" android:title="@string/pref_show_email_address"
            android:summary="@string/pref_summary_show_email_address" />
    </PreferenceCategory>

</PreferenceScreen>

Java代码:

    public static final String DISPLAY_PREFERENCE = "pref_key_display_preference_settings";
    public static final String GENERAL_CHAT_WALLPAPER = "pref_key_chat_wallpaper";

    public void removeGeneralChatWallpaper() {
        PreferenceCategory displayOptions = (PreferenceCategory) findPreference(DISPLAY_PREFERENCE);
        displayOptions.removePreference(findPreference(GENERAL_CHAT_WALLPAPER));
    }

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好,我不太了解Android偏好设置,但是我可以尝试帮助您找到正确的答案。 很高兴为您服务!我可以为您提供有关Android偏好设置的信息。Android Preference(安卓偏好设置)是一种用于管理应用程序设置的框架。它允许您在应用程序中创建一系列用户可见的设置,这些设置可以是键值对、列表、单选按钮等。 在Android应用程序中使用Preference框架可以使用户轻松地更改应用程序的设置,而无需了解复杂的代码或设置文件。您可以使用xml文件来定义偏好设置屏幕,也可以通过编程方式动态创建偏好设置屏幕。 在使用Preference框架时,您需要了解以下概念: 1. Preference:偏好设置的基本单元,它可以是一个复选框、单选框、列表等。 2. PreferenceScreen:偏好设置的屏幕,它是一个容器,可以包含多个Preference。 3. PreferenceCategory:Preference的分类,用于组织PreferenceScreen。 4. SharedPreferences:用于存储应用程序设置的接口,偏好设置框架会将用户更改的设置保存到SharedPreferences中。 以下是一个示例xml文件,用于定义一个简单的偏好设置屏幕: ``` <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <PreferenceCategory android:title="Display settings"> <CheckBoxPreference android:key="notifications" android:title="Notifications" android:summary="Enable/disable notifications" android:defaultValue="true" /> <ListPreference android:key="language" android:title="Language" android:summary="Select your preferred language" android:entries="@array/language_entries" android:entryValues="@array/language_values" android:defaultValue="en" /> </PreferenceCategory> </PreferenceScreen> ``` 该xml文件定义了一个PreferenceScreen,包含一个PreferenceCategory和两个Preference。其中,一个是CheckBoxPreference,用于启用或禁用通知;另一个是ListPreference,用于选择语言。 要在应用程序中使用该偏好设置屏幕,您需要使用PreferenceFragment或PreferenceActivity。PreferenceFragment是一个Fragment,可以显示偏好设置屏幕,而PreferenceActivity是一个Activity,用于显示偏好设置屏幕。 以下是一个示例PreferenceFragment代码,用于显示上面定义的偏好设置屏幕: ``` public class MyPreferenceFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); } } ``` 您需要在Activity中使用FragmentManager来添加PreferenceFragment: ``` public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit(); } } ``` 这就是Android Preference框架的基本用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值