隐藏 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"));//这样 无效,这样 只能删除一级节点 }}