隐藏(删除) Preference 小结
2016-04-09 17:13
561 查看
说明:
1,不是每个Preference 都可以通过这种方法隐藏,例如:languge_setting.xml里面的
<PreferenceCategory android:key="pointer_settings_category"
android:title="@string/pointer_settings_category">
<com.android.settings.PointerSpeedPreference
android:key="pointer_speed"
android:title="@string/pointer_speed"
android:dialogTitle="@string/pointer_speed" />
</PreferenceCategory>
直接在xml里面注视掉
2,查找key的时候不能只局限一个文件,还是languge_setting.xml的 <PreferenceCategory android:key="voice_category"这个key值,本来对应的
/Settings/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java这个文件,但是你在这个文件是搜不到key="voice_category“这个key值的,要在search里面搜,然后发现他在/Settings/src/com/android/settings/VoiceInputOutputSettings.java文件中
.......................................................................................................................................................................................................................................
隐藏 Preference 有两种方法:
一、先在xml布局里面删,然后在java里面删掉调用的相关部分,但如果很多地方都有调用,那么删除就很麻烦;
二、用removePreference(Preference preference)
方法 删除;//推荐方法
实例:
testpreference.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:key="thirdC"
android:title="third Category" >
<ListPreference
android:key="thirdL"
android:title="test Listpreference"
android:summary="first List"
android:entries="@array/cities"
android:entryValues="@array/airport_codes" />
<Preference
android:title="ttt"
android:summary="go to new"
android:key="ttts"
>
</Preference>
</PreferenceCategory>
</PreferenceScreen>
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 {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
addPreferencesFromResource(R.xml.testpreference);
Preference test = findPreference("ttts");
((PreferenceGroup)findPreference("thirdC")).removePreference(findPreference("ttts"));//这是删除
二级节点
getPreferenceScreen().removePreference(findPreference("thirdC"));//这是 删除整个 一级节点
((PreferenceGroup)findPreference("thirdC")).removeAll();//这是 删除整个 一级节点下 所有的二级节点,但不会 删除 一级 节点的 节点名,
// getPreferenceScreen().removePreference(findPreference("ttts"));//这样 无效,这样 只能删除一级节点
}
}
1,不是每个Preference 都可以通过这种方法隐藏,例如:languge_setting.xml里面的
<PreferenceCategory android:key="pointer_settings_category"
android:title="@string/pointer_settings_category">
<com.android.settings.PointerSpeedPreference
android:key="pointer_speed"
android:title="@string/pointer_speed"
android:dialogTitle="@string/pointer_speed" />
</PreferenceCategory>
直接在xml里面注视掉
2,查找key的时候不能只局限一个文件,还是languge_setting.xml的 <PreferenceCategory android:key="voice_category"这个key值,本来对应的
/Settings/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java这个文件,但是你在这个文件是搜不到key="voice_category“这个key值的,要在search里面搜,然后发现他在/Settings/src/com/android/settings/VoiceInputOutputSettings.java文件中
.......................................................................................................................................................................................................................................
隐藏 Preference 有两种方法:
一、先在xml布局里面删,然后在java里面删掉调用的相关部分,但如果很多地方都有调用,那么删除就很麻烦;
二、用removePreference(Preference preference)
方法 删除;//推荐方法
实例:
testpreference.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<PreferenceCategory
android:key="thirdC"
android:title="third Category" >
<ListPreference
android:key="thirdL"
android:title="test Listpreference"
android:summary="first List"
android:entries="@array/cities"
android:entryValues="@array/airport_codes" />
<Preference
android:title="ttt"
android:summary="go to new"
android:key="ttts"
>
</Preference>
</PreferenceCategory>
</PreferenceScreen>
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 {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
addPreferencesFromResource(R.xml.testpreference);
Preference test = findPreference("ttts");
((PreferenceGroup)findPreference("thirdC")).removePreference(findPreference("ttts"));//这是删除
二级节点
getPreferenceScreen().removePreference(findPreference("thirdC"));//这是 删除整个 一级节点
((PreferenceGroup)findPreference("thirdC")).removeAll();//这是 删除整个 一级节点下 所有的二级节点,但不会 删除 一级 节点的 节点名,
// getPreferenceScreen().removePreference(findPreference("ttts"));//这样 无效,这样 只能删除一级节点
}
}
相关文章推荐
- 优就业JS教程-JavaScript创建对象4种方法详解
- 16链表的反转|剑指offer
- [BZOJ 1012][JSOI2008]最大数maxnumber
- leetcode- Delete Node in a Linked List&Remove Linked List Elements
- <a href="javascript:void(0)" onclick="ff()" ></a> 用法解析
- 4行代码实现js模板引擎
- 关于node.js资料集
- 【剑指offer系列】 二叉搜索树的后序遍历系列___24
- js测试
- Myeclipse里导入jQuery.js 时出现错误打红叉的解决方法
- JavaScript基础之函数与数组
- JQuery解析XML数据的几个例子
- 15 个最佳 jQuery 翻书效果插件
- 第四章:变量、作用域和内存问题
- 第三章:基本概念
- JSOUP简介
- 第二章:在HTML中使用JavaScript
- js scroll
- html5 video播放调研,全屏,伪全屏
- HTML5实现全屏API【进入和退出全屏】