嵌套的preferences.xml

GrA*_*And 32 android nested include preferences android-preferences

是否有可能将一个包含preferences.xml到另一个中,就像它可以用<include />标签进行布局一样?

让我们说:

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceScreen 
        android:title="@string/pref_group_title_visual">
        <include 
            preferences_filename="xml/pref_visual"/>
    </PreferenceScreen>
...
Run Code Online (Sandbox Code Playgroud)

小智 26

这里的解决方案是从PreferencesActivity中扩充两个首选项文件.例如:

    addPreferencesFromResource(R.xml.options);
    addPreferencesFromResource(R.xml.additional_options);
Run Code Online (Sandbox Code Playgroud)


Bil*_*ote 15

灵魂解决方案展示了作品.如果您是使用未签名版本的应用程序的开发人员,它可以扩展为仅显示首选项;)

addPreferencesFromResource(R.xml.options);
addPreferencesFromResource(R.xml.additional_options);
if (BuildConfig.DEBUG) {
    addPreferencesFromResource(R.xml.developer_options);
}
Run Code Online (Sandbox Code Playgroud)

我创建了一篇关于此问题的博客文章,并提供了可供下载的完整工作代码示例. http://androidfu.blogspot.com/2012/05/developer-debug-with-nested-preferences.html


Mic*_*ael 2

不,这似乎是不可能的。但有一个简单的解决方法。您可以制作另一个PreferenceActivity加载嵌套的PreferenceScreen. 在主preference.xml文件中,您需要创建一个Preference对象并Intent在代码中为其设置一个对象(使用setIntent()方法)。这Intent必须用于创建第二个PreferenceActivity.