[JAVA] [Android] Listet alle Einstellungselemente auf dem Einstellungsbildschirm auf

Umgebung

Code

Im folgenden Beispiel werden alle Einstellungsschlüssel protokolliert. Der Schlüssel ist, dass "PreferenceGroup" mit der aufgelisteten "Preference" gemischt wird.

PreferenceScreen prefScreen = getPreferenceScreen();
int prefCount = prefScreen.getPreferenceCount();

for (int i = 0; i < prefCount; i++) {
	Preference pref = prefScreen.getPreference(i);
	if (pref instanceof PreferenceGroup) {
		setupPrefsRecursive((PreferenceGroup)pref);
	} else if (!Strings.isNullOrEmpty(pref.getKey())) {
		Log.i(TAG, pref.getKey());
	}
}

private void setupPrefsRecursive(PreferenceGroup prefGroup) {
	int prefGroupCount = prefGroup.getPreferenceCount();
	for (int i = 0; i < prefGroupCount; i++) {
		Preference pref = prefGroup.getPreference(i);
		if (pref instanceof PreferenceGroup) {
			setupPrefsRecursive((PreferenceGroup)pref);
		} else if (!Strings.isNullOrEmpty(pref.getKey())) {
			Log.i(TAG, pref.getKey());
		}
	}
}

Wenn Sie die folgenden Einstellungen haben

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
                  xmlns:mozc="http://schemas.android.com/apk/res-auto">
    <PreferenceCategory android:title="@string/pref_cat_1">
        <CheckBoxPreference
            android:defaultValue="false"
            android:key="pref_key_1"
            android:title="@string/pref_title1" />

        <PreferenceCategory android:title="@string/pref_cat_1_1">

            <Preference
                android:key="pref_key_2"
                android:persistent="false"
                android:title="@string/pref_title2">
            </Preference>
        </PreferenceCategory>
    </PreferenceCategory>

    <PreferenceCategory android:title="@string/pref_cat_2">
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="pref_key_3"
            android:title="@string/pref_title3" />
    </PreferenceCategory>
</PreferenceScreen>

Die Ausgabe wird wie folgt sein.

pref_key_1
pref_key_2
pref_key_3

Referenz

Ich habe es geschrieben, weil es nichts Besonderes gab.

Recommended Posts

[Android] Listet alle Einstellungselemente auf dem Einstellungsbildschirm auf
[Android] Ermittelt die getippte Position (Koordinaten) auf dem Bildschirm
Zeigen Sie die Liste in setDetails mit Federsicherheit auf dem Bildschirm an
Passen Sie die Listenansicht auf Android an
Alle Inhalte der Listenseite löschen [Ruby on Rails]
[Android] Holen Sie sich das Datum von Montag
Versuchen Sie, den Dienst auf Android Oreo zu verwenden
Wie die Website auf dem Bildschirm angezeigt wird
[No.004] Der Bestelllistenbildschirm des Bestellers wurde korrigiert
[Nr.003] Erstellen Sie einen Bestelllistenbildschirm für den Besteller
[Android] Lösung, wenn die Kamera unter Android 9 nicht gestartet werden kann
Ich habe die Listenansicht der Android-Entwicklung gemeinsam gesehen
Importieren Sie eine Instanz und verwenden Sie sie auf einem anderen Bildschirm
<Android> Ändern Sie die Hintergrundfarbe der List-Zeile von ListView
[Android] Zeigen Sie Bilder und Zeichen auf der Registerkarte ViewPager an
[Android Studio] [Java] So fixieren Sie den Bildschirm vertikal
[Android] So erhalten Sie die Einstellungssprache des Terminals
[Einführung] Zeigen Sie Android Studio Hello World auf dem Emulator an
Ich möchte die Protokollausgabe unter Android vereinfachen
Bis das Google Assistant-Beispiel auf Android Things ausgeführt wird