Ссылки на отдельный экран предпочтений Android из другого экрана настроек в формате XML

У меня есть два экрана предпочтений Android, определенных в приложении для Android в формате XML.

Например, Экран 1

<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="screen1"> <PreferenceCategory android:title="Preferences"> <CheckBoxPreference android:defaultValue="true" android:title="test" android:key="test_pref"/> </PreferenceCategory> </PreferenceScreen> 

И экран 2

 <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" android:key="screen2"> <CheckBoxPreference android:key="checkbox" android:title="Checkbox"> </CheckBoxPreference> </PreferenceScreen> 

Я бы хотел, чтобы экран 2 был отдельным экраном, чтобы быть доступным сам по себе, но я также хотел бы, чтобы его предпочтения были частью экрана. Есть ли простой способ, которым я могу просто ссылаться на экран 2 из экрана 1? Или мне просто нужно по существу повторить один и тот же материал предпочтений на экране вспомогательных предпочтений на экране 1.

Solutions Collecting From Web of "Ссылки на отдельный экран предпочтений Android из другого экрана настроек в формате XML"

Я не нашел способ «объединить» оба файла непосредственно в XML, но вы могли бы попытаться объединить их с помощью Java:

 @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); getPreferenceManager().setSharedPreferencesName(Settings.PREFERENCES_NAME); getPreferenceManager().setSharedPreferencesMode(Context.MODE_WORLD_READABLE); // add the first xml addPreferencesFromResource(R.xml.preferences_settings); // add another xml addPreferencesFromResource(R.xml.preferences_mail_settings); // do the things, that need to be done... } 

Удачи

Том

Вы можете сделать это в XML с намерением:

 <PreferenceScreen android:key="screen1"> <PreferenceScreen android:key="screen2"> <intent android:action="com.example.PREFERENCE_2" /> </PreferenceScreen> </PreferenceScreen> 

AndroidManifest.xml:

 <activity android:name="com.example.Preference2Activity"> <intent-filter> <category android:name="android.intent.category.DEFAULT" /> <action android:name="com.example.PREFERENCE_2" /> </intent-filter> </activity>