在XML中的另一个首选项屏幕中引用单独的Android首选项屏幕

我在Android应用程序中定义了两个Android偏好屏幕。

例如,屏幕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的子选项屏幕中重复相同的偏好设置。

Related of "在XML中的另一个首选项屏幕中引用单独的Android首选项屏幕"

我没有find一种方法来直接在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... } 

祝你好运

汤姆

您可以使用Intent在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>