9

Android アプリで XML で定義された 2 つの 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 の一部にしたいと考えています。画面 1 内から画面 2 を簡単に参照できる簡単な方法はありますか? それとも、基本的に、画面 1 のサブ設定画面で同じ設定を繰り返すだけでよいのでしょうか。

4

2 に答える 2

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...
}

幸運を

トム

于 2011-01-20T12:12:41.080 に答える
7

インテントを使用して 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>
于 2011-03-29T20:23:37.763 に答える