
隐藏(删除) Preference 小结
在XML布局文件中删除对应的Preference节点。 在Java代码中找到所有相关的调用位置,逐一删除。这种方法适合只需隐藏单个Preference的情况,但如果有多个调用点,工作量会大大增加。
发布日期:2021-05-07 19:02:37
浏览次数:31
分类:精选文章
本文共 1785 字,大约阅读时间需要 5 分钟。
隐藏Preference的两种方法
在Android开发中,有时需要隐藏Preference,以减少用户的操作复杂性或清理不再使用的设置。以下是两种常用的隐藏方法:
一、删除XML布局中的Preference节点,然后在Java代码中删除相关调用
这种方法虽然可行,但在多个地方调用时会非常麻烦。具体步骤如下:
二、使用removePreference方法
Android提供了removePreference
方法,可以更高效地删除Preference。推荐使用这种方法:
在Java代码中调用PreferenceGroup
的removePreference
方法。例如:
((PreferenceGroup)findPreference("thirdC")).removePreference(findPreference("ttts"));
这将仅删除指定Preference的值,但不会删除Preference节点本身。
使用getPreferenceScreen().removePreference
方法删除整个Preference节点。例如:
getPreferenceScreen().removePreference(findPreference("thirdC"));
这将删除整个PreferenceCategory及其所有子节点。
如果需要删除整个PreferenceCategory及其所有子节点,可以使用removeAll
方法:
((PreferenceGroup)findPreference("thirdC")).removeAll();
这种方法不会删除PreferenceCategory节点本身。
实例说明
XML代码示例(testpreference.xml)
Java代码示例
package wh.zgj; import android.app.Activity; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceGroup; public class PreferenceActivity extends android.preference.PreferenceActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.testpreference); // 删除二级节点 ((PreferenceGroup)findPreference("thirdC")).removePreference(findPreference("ttts")); // 删除整个一级节点 getPreferenceScreen().removePreference(findPreference("thirdC")); // 删除整个一级节点下的所有二级节点 ((PreferenceGroup)findPreference("thirdC")).removeAll(); } }
注意事项
- 使用
removePreference
删除二级节点时,需确保 PreferenceGroup 已经存在。 - 使用
removeAll
方法时,需确认不会影响到其他Preference。 - 最好在隐藏Preference前,将其设置为不可选或禁用状态,以便用户仍能查看但无法操作。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月24日 02时50分47秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Redis简介(数据结构,哨兵、集群和SpringDataRedis)
2019-03-06
MySQL锁机制
2019-03-06
Go 数组&切片
2019-03-06
Go 文件操作
2019-03-06
老Python总结的字典相关知识
2019-03-06
vue 不常见操作
2019-03-06
jQuery的事件绑定与触发 - 学习笔记
2019-03-06
Python处理接口测试的签名
2019-03-06
测试流程规范--测试报告模板
2019-03-06
Linux上TCP的几个内核参数调优
2019-03-06
记一次讲故事机器人的开发-我有故事,让机器人来读
2019-03-06
高德算法工程一体化实践和思考
2019-03-06
重温网络编程——常识(三)
2019-03-06
判断一个数是否是2的幂
2019-03-06
js 闭包(新)
2019-03-06
vscode 编辑python 如何格式化
2019-03-06
seo 回忆录百度基本概念(一)
2019-03-06
重新整理数据结构与算法(c#)—— 算法套路二分法[二十四]
2019-03-06
用ThreadLocal来优化下代码吧
2019-03-06