您的位置:首页 > Web前端

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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: