我有一个简单的preference_headers.xml文件.我想在我的首选项标题上添加一些类别.我试图<PreferenceCategory />在我的实现preference_headers.xml,但它不起作用.我正在使用API级别11.如下图所示,官方网站上的 Android开发者可以添加类别.我该如何添加呢?

这是我的一些preference_headers.xml代码.它不起作用:
<preference-headers xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory android:title="ACCOUNT" >
<header android:fragment="com.example.preferenceheader.SettingsFragmentAccount"
android:title="@string/pref_header_category_account"
android:summary="@string/pref_header_summ_account"
android:icon="@drawable/ic_action_settings" />
</PreferenceCategory>
<PreferenceCategory android:title="APPLICATION" >
<header android:fragment="com.example.preferenceheader.SettingsFragmentApplication"
android:title="@string/pref_header_category_application"
android:summary="@string/pref_header_summ_application"
android:icon="@drawable/ic_action_group" />
</PreferenceCategory>
</preference-headers>
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助.
我发现了类似的问题,但无法找到最新的具体答案.我正在使用<preference-header>,根据3.0+设置设计指南(我的目标4.1.2+)来构建我的标题; 我想为这些标题设置自定义布局.请注意,我不想回到此处所述的旧PreferenceScreen方法,因为我不支持较旧的Android版本.
据我所知,这个布局由PreferenceActivity类的私有成员保存,并使用看似不可公开访问的样式属性进行检索:
private int mPreferenceHeaderItemResId = 0;
...
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
...
TypedArray sa = obtainStyledAttributes(null,
com.android.internal.R.styleable.PreferenceActivity,
com.android.internal.R.attr.preferenceActivityStyle,
0);
...
mPreferenceHeaderItemResId = sa.getResourceId(
com.android.internal.R.styleable.PreferenceActivity_headerLayout,
com.android.internal.R.layout.preference_header_item);
...
}
Run Code Online (Sandbox Code Playgroud)
然后将此资源传递给专用适配器以填充标头ListView.
有没有办法传递不同的布局资源?
android preferenceactivity android-layout preference-headers