如何从PreferenceActivity中的PreferenceCategory中删除标题栏

时间:2012-05-11 17:23:43

标签: android android-layout android-preferences preferenceactivity

这是我的首选项xml文件:myPreferences.xml:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory>
    <EditTextPreference android:key="name" android:title="Name" android:inputType="text" android:defaultValue="" />
    <EditTextPreference android:key="email" android:title="Email" android:inputType="textEmailAddress" android:defaultValue="" />
    <EditTextPreference android:key="phone" android:title="Phone Number" android:inputType="phone" android:defaultValue="" />
    <EditTextPreference android:key="zipcode" android:title="Zip Code" android:inputType="number" android:defaultValue="" />
</PreferenceCategory>
</PreferenceScreen>

这是我在AndroidManifest.xml中的首选项活动声明:

<activity
        android:name=".activities.MyPreferencesActivity"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.NoTitleBar" />

而且,这是我之前尝试应用于我的活动的一种风格:

 <activity
     android:name=".activities.MyPreferencesActivity"
     android:screenOrientation="portrait"
     android:theme="@android:style/PreferenceTheme" />

 <style name="PreferenceTheme">
     <item name="android:background">@drawable/background_preferences</item>
     <item name="android:windowNoTitle">true</item>
 </style>

它不起作用。

然后,我尝试通过myCreferencesActivity的onCreate中的java代码来实现它:

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     requestWindowFeature(Window.FEATURE_NO_TITLE);
     super.onCreate(savedInstanceState);
 addPreferencesFromResource(R.xml.myPreferences);
 }

不起作用。尝试将标题设置为drawable。

 @Override
 protected void onCreate(Bundle savedInstanceState) {
     requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
     super.onCreate(savedInstanceState);
     addPreferencesFromResource(R.xml.preferences_profile);
     getWindow().setFeatureDrawableResource(Window.FEATURE_CUSTOM_TITLE, R.drawable.profile_banner);
 }

NOPE。不起作用。

我所做的一切只删除了偏好活动的标题栏,但没有删除偏好类别。

有人可以帮帮我吗?提前谢谢。

1 个答案:

答案 0 :(得分:8)

如果您不希望标题栏位于一组偏好设置之上,请不要使用PreferenceCategory,因为它没有任何用处,只需将您的所有偏好设置放入PreferenceScreen元素:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <EditTextPreference android:key="name" android:title="Name" android:inputType="text" android:defaultValue="" />
    <EditTextPreference android:key="email" android:title="Email" android:inputType="textEmailAddress" android:defaultValue="" />
    <EditTextPreference android:key="phone" android:title="Phone Number" android:inputType="phone" android:defaultValue="" />
    <EditTextPreference android:key="zipcode" android:title="Zip Code" android:inputType="number" android:defaultValue="" />

</PreferenceScreen>

HTH