我在Android应用中以XML格式定义了两个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是一个单独的屏幕,可以自己访问,但我也希望它的首选项也是屏幕的一部分。 有一种简单的方法可以简单地从屏幕1中引用屏幕2吗? 或者我只需要在屏幕1的子偏好屏幕中重复相同的偏好内容。
答案 0 :(得分:13)
我没有找到直接在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...
}
祝你好运
汤姆
答案 1 :(得分:7)
您可以使用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>