[JAVA] [Android] Liste tous les éléments de réglage sur l'écran de réglage

environnement

code

Dans l'exemple suivant, toutes les clés de réglage sont enregistrées. La clé est que «PreferenceGroup» est mélangé avec la «Preference» répertoriée.

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());
		}
	}
}

Si vous disposez des paramètres suivants

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

La sortie sera la suivante.

pref_key_1
pref_key_2
pref_key_3

référence

Je l'ai écrit parce qu'il n'y avait rien de particulier.

Recommended Posts

[Android] Liste tous les éléments de réglage sur l'écran de réglage
[Android] Obtenez la position tapée (coordonnées) sur l'écran
Afficher la liste en setDétails à l'écran avec ressort-sécurité
Personnaliser la vue de liste sur Android
Supprimer tout le contenu de la page de liste [Ruby on Rails]
[Android] Obtenez la date du lundi
Essayez d'utiliser le service sur Android Oreo
Comment le site Web s'affiche à l'écran
[N ° 004] Correction de l'écran de la liste des commandes du client
[No.003] Créer un écran de liste de commandes pour le client
[Android] Solution lorsque l'appareil photo ne peut pas être démarré sur Android 9
J'ai vu la liste du développement Android collectivement
Importez une instance et utilisez-la sur un autre écran
<Android> Changer la couleur d'arrière-plan de la ligne Liste de ListView
[Android] Afficher les images et les caractères dans l'onglet ViewPager
[Android Studio] [Java] Comment réparer l'écran verticalement
[Android] Comment obtenir la langue de réglage du terminal
[Introduction] Affichez Android Studio Hello World sur l'émulateur
Je souhaite simplifier la sortie du journal sur Android
Jusqu'à ce que l'exemple de l'Assistant Google s'exécute sur Android Things