隐藏 Preference 有两种方法:

一、先在xml布局里面删,然后在java里面删掉调用的相关部分,但如果很多地方都有调用,那么删除就很麻烦;

二、用removePreference(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"));//这是删除 二级节点thirdC"));//这是 删除整个 一级节点
      ((PreferenceGroup)findPreference("thirdC")).removeAll();//这是 删除整个 一级节点下 所有的二级节点,但不会 删除 一级 节点的 节点名,
        // getPreferenceScreen().removePreference(findPreference("ttts"));//这样 无效,这样 只能删除一级节点

     }
 }