So codieren Sie einen Einstellungsbildschirm in einer Android-App
German (Deutsch) translation by Tatsiana Bochkareva (you can also view the original English article)

Das Materialdesign-Team von Google gibt eine klare Definition der Einstellungen in Ihrer Android-App:
App-Einstellungen ermöglichen es Benutzern, Präferenzen für das Verhalten einer App anzugeben.
Sie bei Google geben auch an, dass Ihre Benutzer entweder über die seitliche Navigation oder das Symbolleistenmenü zu den App-Einstellungen navigieren sollten – mit einem Element mit der Bezeichnung Einstellungen.
Durch das Einfügen von Einstellungen in Ihre App können Ihre Benutzer einige der Funktionen Ihrer App steuern. Das macht Ihre Benutzer glücklich statt wütend – denn sie haben jetzt die Kontrolle darüber, wie sich die App verhält.
Es wird dringend empfohlen, den Zugriff auf die App-Einstellungen zu gewähren. Dies bietet Ihren Nutzern eine bessere Benutzererfahrung, was zu einer besseren Bewertung im Google Play Store führt, was schließlich zu einer höheren Anzahl von App-Downloads führt (was den Umsatz steigert).
Ich gehe davon aus, dass Sie mit den Einstellungen einer App auf Ihrem Gerät interagiert haben, beispielsweise indem Sie einen Standardklingelton ausgewählt oder Ihre Privatsphäre in der App kontrolliert haben. Fast alle der beliebtesten Apps, die Sie im Google Play Store heruntergeladen haben oder herunterladen werden, enthalten einen Einstellungsbildschirm, mit dem Sie das Verhalten der Anwendung steuern können.
Ein Beispiel für eine beliebte App mit einem Einstellungsbildschirm ist die Chrome Android App von Google. Im Einstellungsbildschirm dieser App können Benutzer die Standardsuchmaschine auswählen, das Benachrichtigungsverhalten ändern, die Privatsphäre der Benutzer steuern usw. Sie können dies selbst sehen, indem Sie die Chrome-App aus dem Google Play Store herunterladen (falls Sie sie noch nicht auf Ihrem Gerät haben). Der folgende Screenshot stammt aus der Chrome-App und zeigt den Einstellungsbildschirm der App an.

In diesem Beitrag erfahren Sie, wie Sie einen App-Einstellungsbildschirm von Grund auf neu erstellen und die Werte lesen, die der Benutzer aus den App-Einstellungen ausgewählt hat. Als zusätzlichen Bonus erfahren Sie auch, wie Sie die Android Studio-Vorlagenfunktion verwenden, um Ihr Projekt mit einem Einstellungsbildschirm schnell zu booten.
Ein Beispielprojekt (in Kotlin) für dieses Tutorial finden Sie in unserem GitHub-Repository, damit Sie es leicht verfolgen können.
Voraussetzungen
Um diesem Tutorial folgen zu können, benötigen Sie:
- Ein grundlegendes Verständnis einiger Android-APIs (wie
SharedPreferences) - Android Studio 3.0 oder höher
- Kotlin-Plugin 1.1.51 oder höher
1. Erstellen Sie ein Android Studio-Projekt
Starten Sie Android Studio und erstellen Sie ein neues Projekt (Sie können es SettingsScreenDemo nennen) mit einer leeren Aktivität namens SettingsActivity. Stellen Sie sicher, dass Sie auch das Kontrollkästchen Kotlin-Unterstützung einschließen aktivieren.

2. Erstellen eines PreferenceFragment
Um API Level 11 (Honeycomb) und höher zu unterstützen, können wir das PreferenceFragment verwenden. Diese Klasse ist einfach ein Fragment, das eine Hierarchie von Preference-Objekten als Listen anzeigt.
1 |
import android.os.Bundle |
2 |
import android.preference.PreferenceFragment |
3 |
import android.support.v7.app.AppCompatActivity |
4 |
|
5 |
class SettingsActivity : AppCompatActivity() { |
6 |
|
7 |
override fun onCreate(savedInstanceState: Bundle?) { |
8 |
super.onCreate(savedInstanceState) |
9 |
|
10 |
if (fragmentManager.findFragmentById(android.R.id.content) == null) { |
11 |
fragmentManager.beginTransaction() |
12 |
.add(android.R.id.content, SettingsFragment()).commit() |
13 |
}
|
14 |
}
|
15 |
|
16 |
|
17 |
class SettingsFragment : PreferenceFragment() { |
18 |
override fun onCreate(savedInstanceState: Bundle?) { |
19 |
super.onCreate(savedInstanceState) |
20 |
addPreferencesFromResource(R.xml.preferences) |
21 |
}
|
22 |
}
|
23 |
}
|
Im obigen Code haben wir eine verschachtelte Klasse SettingsFragment in SettingsActivity erstellt (da die SetttingsFragment-Klasse so klein ist). Beachten Sie, dass unsere Klasse SettingsFragment die Superklasse PreferenceFragment erweitert und eine Methode addPrerenceFromResource innerhalb von onCreate() hat. In dieser Methode haben wir ihr die Ressourcen-ID R.xml.preference der XML-Präferenz zum Starten gegeben – wenn das Fragment geladen wird. Schließlich hosten wir das Fragment für die Aktivität, indem wir einfach die FragmentTransaction verwenden, um es der Benutzeroberfläche hinzuzufügen – innerhalb von onCreate() von SettingsActivity.
3. Unsere Präferenzen erstellen
Erstellen Sie eine XML-Datei und nennen Sie sie preferences.xml. Speichern Sie diese Datei im Verzeichnis res/xml in Ihrem App-Projekt. Beachten Sie, dass Sie dieser Datei einen beliebigen Namen geben können, es wird jedoch dringend empfohlen, bei den herkömmlichen Namen "Einstellungen" zu bleiben. Außerdem sollten Sie in einem App-Projekt normalerweise nur eine solche Datei haben.
1 |
<?xml version="1.0" encoding="utf-8"?>
|
2 |
<PreferenceScreen xmlns:android="https://schemas.android.com/apk/res/android"> |
3 |
<CheckBoxPreference
|
4 |
android:key="checkbox" |
5 |
android:summary="Tap to check if on or off" |
6 |
android:title="Checkbox Preference" /> |
7 |
<RingtonePreference
|
8 |
android:key="ringtone" |
9 |
android:showDefault="true" |
10 |
android:showSilent="true" |
11 |
android:summary="Pick a ringtone you like" |
12 |
android:title="Ringtone Preference" /> |
13 |
<EditTextPreference
|
14 |
android:dialogTitle="Enter a text" |
15 |
android:key="text" |
16 |
android:summary="Click to show a text entry dialog" |
17 |
android:title="EditText Preference" /> |
18 |
<ListPreference
|
19 |
android:dialogTitle="Select duration" |
20 |
android:entries="@array/settings_list_preference_titles" |
21 |
android:entryValues="@array/settings_list_preference_values" |
22 |
android:key="list" |
23 |
android:summary="Click to show a list to choose from" |
24 |
android:title="List Preference" /> |
25 |
<SwitchPreference
|
26 |
android:key="switch" |
27 |
android:title="Switch Preference" |
28 |
android:summary="Click to switch on or off" |
29 |
android:defaultValue="true"/> |
30 |
</PreferenceScreen>
|
Der Root-Knoten für unsere Datei preferences.xml sollte ein <PreferenceScreen>-Element sein. Innerhalb dieses Wurzelelements haben wir jetzt unsere individuelle Preference. Hier sind die allgemeinen Attribute, die einer Preference zugeordnet sind:
-
android:key: Dieses Attribut wird verwendet, um den Wert imSharedPreferences-Objekt zu erhalten. -
android:title: Legt den Titel für diePreferencefest. Dies ist der fett gedruckte Text. -
android:summary: legt die Zusammenfassung für diePreferencefest (dies ist nicht erforderlich). Dies ist der verblasste Text unter dem Titel. -
android:defaultValue: legt den Standardwert für diePreferencefest.
Wir werden jede der oben definierten Preference in Kürze durchgehen. Beachten Sie, dass Sie eine Einstellung auch über den Preference von Android Studio hinzufügen oder anpassen können – ähnlich dem Layout-Ressourcen-Editor, mit dem Sie bereits vertraut sind. Sie können Ihre bevorzugte XML-Datei entweder direkt im "Text"-Modus hinzufügen/bearbeiten oder die Drag-and-Drop-Benutzeroberfläche im "Design"-Modus verwenden.

Wie Sie sehen, können Sie in diesem Editor jede Preference in den Palettenbereich (auf der linken Seite) ziehen und ablegen. Nach dem Ablegen sollten Sie es auswählen und seine Attribute im Attributbereich (auf der rechten Seite) des Editors ändern. Beachten Sie, dass wir standardmäßig einige Attribute zum Ändern erhalten. Um alle Attribute anzuzeigen oder zu ändern, die einer ausgewählten Preference zugeordnet sind, stellen Sie sicher, dass Sie unten im Attributbereich auf den Link Alle Attribute anzeigen klicken. Dies ist dem Layout-Editor, den Sie bereits kennen, sehr ähnlich.
Lassen Sie uns nun jede der Preference-Entitäten durchgehen, die wir haben.
Kontrollkästchen-Präferenz
Eine CheckBoxPreference ist einfach ein CheckBox-Widget, das im Einstellungsbildschirm enthalten ist. Diese Preference gibt den Wert "true" zurück, wenn sie aktiviert ist, oder "false" andernfalls. Mit anderen Worten, es gibt abhängig vom Status des Widgets einen booleschen Wert zurück.
1 |
<CheckBoxPreference
|
2 |
android:key="checkbox" |
3 |
android:summary="Tap to check if on or off" |
4 |
android:title="Checkbox Preference" /> |

Andere Attribute, die Sie zu einer CheckBoxPreference hinzufügen können, sind:
-
android:summaryOff: legt die Zusammenfassung für diePreferencein einem Einstellungsbildschirm fest, wenn sie nicht markiert ist. -
android:summaryOn: legt die Zusammenfassung für diePreferencein einem Einstellungsbildschirm fest, wenn sie aktiviert ist. -
android:disableDependentsState: Der Zustand (true für on oder false für off), der bewirkt, dass abhängige Personen deaktiviert werden. Kann ein boolescher Wert sein, z. B. "true" oder "false".
Schalterpräferenz
SwitchPreference führt ähnliche Funktionen wie CheckBoxPreference aus. Es bietet eine umschaltbare Option mit zwei Zuständen ("ein" oder "aus"). Dies verwendet ein Switch-Widget, mit dem der Benutzer nach links ("aus") und nach rechts ("ein") gleiten kann. Diese Preference enthält auch die oben für die CheckBoxPreference beschriebenen Attribute. Darüber hinaus hat es die folgenden Attribute:
-
android:switchTextOff: Setzt den Text, der auf dem Schalter selbst verwendet wird, wenn er sich im "Aus"-Zustand befindet. -
android:switchTextOn: Setzt den Text, der auf dem Schalter selbst verwendet wird, wenn er sich im "on"-Zustand befindet.
1 |
<SwitchPreference
|
2 |
android:key="switch" |
3 |
android:title="Switch Preference" |
4 |
android:summary="Click to switch on or off" |
5 |
android:defaultValue="true"/> |

EditText-Präferenz
Wenn diese Preference angeklickt wird, wird ein Dialogfeld angezeigt, in dem der Benutzer einen Eingabetext eingeben kann. Es verwendet das EditText-Widget – einschließlich aller Attribute dieses Widgets, mit denen Sie bereits vertraut sind.
1 |
<EditTextPreference
|
2 |
android:dialogTitle="Enter a text" |
3 |
android:key="text" |
4 |
android:summary="Click to show a text entry dialog" |
5 |
android:title="EditText Preference" |
6 |
android:inputType="text"/> |
Beachten Sie, dass der in den SharedPreferences gespeicherte Wert eine Zeichenfolge ist.

Listenpräferenz
Diese Art von Preference zeigt beim Antippen eine Liste von Einträgen in einem Dialogfeld an. Hier können Sie ein Paar von String-Array-Ressourcen in Ihrem bevorzugten XML angeben. Diese String-Array-Ressource enthält einfach eine Sammlung von Strings. Diese Ressource befindet sich unter res/values/arrays.xml.
1 |
<?xml version="1.0" encoding="utf-8"?>
|
2 |
<resources>
|
3 |
<string-array name="settings_list_preference_titles"> |
4 |
<item>15 minutes</item> |
5 |
<item>30 minutes</item> |
6 |
<item>1 hour</item> |
7 |
<item>3 hours</item> |
8 |
<item>6 hours</item> |
9 |
<item>Never</item> |
10 |
</string-array>
|
11 |
<string-array name="settings_list_preference_values"> |
12 |
<item>15</item> |
13 |
<item>30</item> |
14 |
<item>60</item> |
15 |
<item>180</item> |
16 |
<item>360</item> |
17 |
<item>-1</item> |
18 |
</string-array>
|
19 |
</resources>
|
Hier ist unser Beispiel für ListPreference, das diese Ressource verwendet.
1 |
<ListPreference
|
2 |
android:dialogTitle="Select duration" |
3 |
android:entries="@array/settings_list_preference_titles" |
4 |
android:entryValues="@array/settings_list_preference_values" |
5 |
android:key="list" |
6 |
android:summary="Click to show a list to choose from" |
7 |
android:title="List Preference" /> |
Wir legen die Einträge und Eintragswerte mit den Attributen android:entries bzw. android:entryValues fest.
-
android:entries: das für Menschen lesbare Array, das als Liste dargestellt werden soll. -
android:entryValues: das Array, um den Wert zu finden, der für eine Voreinstellung gespeichert werden soll, wenn ein Eintrag aus Einträgen ausgewählt wird.

Wenn wir beispielsweise die Anzahl der Minuten in jeder Dauer als Eingabewerte verwenden, wenn der Benutzer eine Zeitdauer auswählt (z. B. 30 Minuten), wird der entsprechende ganzzahlige Wert in SharedPreferences (z. B. 30) gespeichert.
MultiSelect-Listen-Präferenz
Dieser ähnelt ListPreference, hat jedoch keine Optionsfelder, sondern Kontrollkästchen. Mit anderen Worten, der Benutzer kann mehrere Elemente im Dialog auswählen. Beachten Sie, dass das Ergebnis in einem „String-Set“ in den SharedPreferences gespeichert wird. Dies kann mit getStringSet() abgerufen werden.
1 |
<MultiSelectListPreference
|
2 |
android:dialogTitle="Dialog title" |
3 |
android:entries="@array/settings_multi_select_list_preference_titles" |
4 |
android:entryValues="@array/settings_multi_select_list_preference_values" |
5 |
android:key="multi_select_list" |
6 |
android:title="Multiselect title" /> |
Klingelton-Präferenz
Wenn eine RingtonePreference angetippt wird, wird ein Dialogfeld mit der Liste der verfügbaren Klingeltöne auf dem Gerät oder Emulator angezeigt.
1 |
<RingtonePreference
|
2 |
android:key="ringtone" |
3 |
android:showDefault="true" |
4 |
android:showSilent="true" |
5 |
android:summary="Pick a ringtone you like" |
6 |
android:title="Ringtone Preference" /> |
-
android:showDefault: Ob die Option Standardklingelton angezeigt wird. -
android:showSilent: Ob eine Silent-Option in der Liste angezeigt wird. Der Benutzer kann diese Option auswählen, wenn er keinen Klingelton abspielen möchte.

Beachten Sie, dass der in den SharedPreferences gespeicherte Wert für diese Einstellung eine spezielle Zeichenfolge ist. Dieser spezielle String ist ein URI, der auf einen ContentProvider zeigt.
4. Erstellen von Einstellungsgruppen
Es wird zu einem Problem, wenn Sie eine lange Liste von Einstellungen oder Einstellungen haben, da Benutzer möglicherweise Probleme haben, diese zu scannen oder zu verstehen. Um dieses Problem zu lösen, können wir unsere Präferenzen gruppieren. Sehen Sie sich noch einmal den Screenshot der Chrome-App an, die ich Ihnen am Anfang gezeigt habe. Beachten Sie, dass die Einstellungen in zwei Kategorien unterteilt sind: Grundlagen und Erweitert. Dies erleichtert es dem Benutzer, die Präferenzen zu verstehen und die Liste nicht zu überladen erscheinen zu lassen.
Schauen wir uns nun an, wie einfach es ist, diese Aufgabe auszuführen.
1 |
<?xml version="1.0" encoding="utf-8"?>
|
2 |
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> |
3 |
|
4 |
<PreferenceCategory android:title="Basic Settings"> |
5 |
<CheckBoxPreference
|
6 |
android:key="checkbox" |
7 |
android:summary="Tap to check if on or off" |
8 |
android:title="Checkbox Preference"/> |
9 |
... |
10 |
</PreferenceCategory>
|
11 |
|
12 |
<PreferenceCategory android:title="Advanced Settings"> |
13 |
<ListPreference
|
14 |
android:dialogTitle="Select duration" |
15 |
android:entries="@array/settings_list_preference_titles" |
16 |
android:entryValues="@array/settings_list_preference_values" |
17 |
android:key="list" |
18 |
android:summary="Click to show a list to choose from" |
19 |
android:title="List Preference"/> |
20 |
... |
21 |
</PreferenceCategory>
|
22 |
</PreferenceScreen>
|
Wir umgeben einfach die Einstellungen, die wir gruppieren möchten, in einem <PreferenceCategory>-Tag und geben jeder Gruppe einen Titel mit dem android:title-Attribut.

5. Eine Absicht starten
Beachten Sie, dass es möglich ist, eine Aktivität zu öffnen, indem Sie einfach auf ein Einstellungselement im Einstellungsbildschirm klicken. Dies kann praktisch sein, wenn Sie eine Webseite öffnen möchten. Hier ist der Code, um das zu tun:
1 |
<Preference
|
2 |
android:summary="Click to start an activity" |
3 |
android:title="Preference"> |
4 |
<intent
|
5 |
android:action="com.chikeandroid.settingsscreendemo.SETTING_START_ACTIVITY" |
6 |
android:targetClass="com.chikeandroid.settingsscreendemo.MyActivity" |
7 |
android:targetPackage="com.chikeandroid.settingsscreendemo" /> |
8 |
</Preference>
|
Hier haben wir ein <intent>-Element innerhalb des <Preference>-Elements hinzugefügt.
-
android:action: legt die Aktion für den Intent fest (dies ähnelt dem Aufrufen vonsetAction()für ein Intent-Objekt). -
android:targetClass: legt den Klassenteil des Komponentennamens fest (wie der Aufruf vonsetComponent()für ein Intent-Objekt). -
android:targetPackage: legt den Paketteil des Komponentennamens fest. -
android:data: legt die zuzuweisenden Daten fest (wie der Aufruf vonsetData()für ein Intent-Objekt).
Um beispielsweise eine Webseite zu öffnen, können Sie Folgendes verwenden:
1 |
<Preference android:title="@string/prefs_web_page" > |
2 |
<intent android:action="android.intent.action.VIEW" |
3 |
android:data="http://www.example.com" /> |
4 |
</Preference>
|
6. Bindung der Präferenzübersicht an den ausgewählten Wert
Sehen wir uns nun an, wie Sie die Einstellungszusammenfassung mit dem vom Benutzer ausgewählten Wert aktualisieren.
1 |
class SettingsActivity : AppCompatActivity() { |
2 |
|
3 |
// ...
|
4 |
class SettingsFragment : PreferenceFragment() { |
5 |
override fun onCreate(savedInstanceState: Bundle?) { |
6 |
super.onCreate(savedInstanceState) |
7 |
addPreferencesFromResource(R.xml.preferences) |
8 |
|
9 |
bindPreferenceSummaryToValue(findPreference("ringtone")) |
10 |
bindPreferenceSummaryToValue(findPreference("text")) |
11 |
bindPreferenceSummaryToValue(findPreference("list")) |
12 |
}
|
13 |
}
|
14 |
// ...
|
15 |
}
|
In dieser Klasse haben wir eine Hilfsmethode namens bindPreferenceSummaryToValue() erstellt, die sich in unserem Begleitobjekt befindet, um den Zusammenfassungstext der Einstellungen mit dem vom Benutzer ausgewählten Wert zu aktualisieren. Wir haben ihm ein Preference-Objekt als Argument übergeben. findPreference() gibt eine Preference zurück, die den Schlüssel der Preference verwendet.
1 |
class SettingsActivity : AppCompatActivity() { |
2 |
// ...
|
3 |
companion object { |
4 |
|
5 |
/**
|
6 |
* A preference value change listener that updates the preference's summary
|
7 |
* to reflect its new value.
|
8 |
*/
|
9 |
private val sBindPreferenceSummaryToValueListener = Preference.OnPreferenceChangeListener { preference, value -> |
10 |
|
11 |
val stringValue = value.toString() |
12 |
|
13 |
if (preference is ListPreference) { |
14 |
// For list preferences, look up the correct display value in
|
15 |
// the preference's 'entries' list.
|
16 |
val listPreference = preference |
17 |
val index = listPreference.findIndexOfValue(stringValue) |
18 |
|
19 |
// Set the summary to reflect the new value.
|
20 |
preference.setSummary( |
21 |
if (index >= 0) |
22 |
listPreference.entries[index] |
23 |
else
|
24 |
null) |
25 |
|
26 |
} else if (preference is RingtonePreference) { |
27 |
// For ringtone preferences, look up the correct display value
|
28 |
// using RingtoneManager.
|
29 |
if (TextUtils.isEmpty(stringValue)) { |
30 |
// Empty values correspond to 'silent' (no ringtone).
|
31 |
preference.setSummary("Silent") |
32 |
|
33 |
} else { |
34 |
val ringtone = RingtoneManager.getRingtone( |
35 |
preference.getContext(), Uri.parse(stringValue)) |
36 |
|
37 |
if (ringtone == null) { |
38 |
// Clear the summary if there was a lookup error.
|
39 |
preference.setSummary(null) |
40 |
} else { |
41 |
// Set the summary to reflect the new ringtone display
|
42 |
// name.
|
43 |
val name = ringtone.getTitle(preference.getContext()) |
44 |
preference.setSummary(name) |
45 |
}
|
46 |
}
|
47 |
}
|
48 |
else { |
49 |
// For all other preferences, set the summary to the value's
|
50 |
// simple string representation.
|
51 |
preference.summary = stringValue |
52 |
}
|
53 |
true
|
54 |
}
|
55 |
|
56 |
private fun bindPreferenceSummaryToValue(preference: Preference) { |
57 |
// Set the listener to watch for value changes.
|
58 |
preference.onPreferenceChangeListener = sBindPreferenceSummaryToValueListener |
59 |
|
60 |
// Trigger the listener immediately with the preference's
|
61 |
// current value.
|
62 |
sBindPreferenceSummaryToValueListener.onPreferenceChange(preference, |
63 |
PreferenceManager
|
64 |
.getDefaultSharedPreferences(preference.context) |
65 |
.getString(preference.key, "")) |
66 |
}
|
67 |
}
|
68 |
}
|
Wir haben eine Variable sBindPreferenceSummaryToValueListener, die eine Instanz von Preference.OnPreferenceChangeListener ist. Dies ist einfach ein Einstellungsänderungs-Listener, der uns hilft, die Einstellungszusammenfassung auf den vom Benutzer ausgewählten Wert zu aktualisieren. Wir prüfen auf Sonderfälle, z. B. wenn die ausgewählte Einstellung eine RingtonePreference oder eine ListPreference ist. Für diese Einstellungstypen führen wir eine spezielle Behandlung durch, um die Zusammenfassungszeichenfolge zu erhalten. Wenn die Einstellung keines ist (wie eine EditTextPreference), setzen wir einfach die Zusammenfassung auf den Zeichenfolgenwert der Einstellung.
Innerhalb von bindPreferenceSummaryToValue() setzen wir den Einstellungsänderungs-Listener, indem wir onPreferenceChangeListener (in Java stattdessen setOnPreferenceChangeListener) für das Preference-Objekt aufrufen.
Führen Sie nun das Projekt erneut aus, um zu sehen, wie alles funktioniert!

7. Abrufen von Präferenzwerten
Um mit dem Abrufen von Präferenzwerten für den Einstellungsbildschirm zu beginnen, rufen wir getDefaultSharedPreference() auf, das sich in der PreferenceManager-Klasse befindet, und übergeben ihr ein Context-Objekt der Präferenzen, deren Werte gesucht werden. Beachten Sie, dass wir die Werte aus den standardmäßigen SharedPreferences für unsere Anwendung abrufen.
1 |
val prefs = PreferenceManager.getDefaultSharedPreferences(this) |
2 |
prefs.getBoolean("checkbox", false).toString() |
3 |
prefs.getString("ringtone", "<unset>") |
4 |
prefs.getString("text", "<unset>") |
5 |
prefs.getString("list", "<unset>") |
Sie rufen die entsprechende Getter-Methode für den Typ auf, von dem wir den Wert in SharedPreferences abrufen möchten. Sie übergeben ihm den Schlüssel als erstes Argument und der Standardwert ist das zweite Argument.
8. Bonus: Verwenden von Android Studio-Vorlagen
Nachdem Sie nun die erforderlichen APIs kennengelernt haben, um einen Einstellungsbildschirm in Android von Grund auf neu zu erstellen, zeige ich Ihnen eine Verknüpfung, die es beim nächsten Mal schneller macht. Sie können eine Vorlage verwenden, anstatt einen Einstellungsbildschirm von Grund auf neu zu programmieren.
Android Studio bietet Codevorlagen, die den Best Practices für Android-Design und -Entwicklung entsprechen. Diese vorhandenen Codevorlagen (verfügbar in Java und Kotlin) können Ihnen helfen, Ihr Projekt schnell zu starten. Eine solche Vorlage kann verwendet werden, um einen Einstellungsbildschirm zu erstellen.
Um diese praktische Funktion für ein neues Projekt zu verwenden, starten Sie zuerst Android Studio.

Geben Sie den Anwendungsnamen ein und klicken Sie auf die Schaltfläche Weiter. Sie können die Standardeinstellungen im Dialogfeld Android-Zielgeräte unverändert belassen.
Klicken Sie erneut auf die Schaltfläche Weiter.

Scrollen Sie im Dialogfeld Aktivität zu Mobile hinzufügen nach unten und wählen Sie Einstellungen Aktivität. Klicken Sie danach auf die Schaltfläche Weiter.

Im letzten Dialog können Sie den Aktivitätsnamen, den Layoutnamen oder den Titel nach Belieben umbenennen. Klicken Sie abschließend auf die Schaltfläche Fertig stellen, um alle Konfigurationen zu akzeptieren.
Android Studio hat uns jetzt geholfen, ein Projekt mit einer Einstellungsaktivität zu erstellen. Wirklich cool! Es wird dringend empfohlen, den generierten Code zu erkunden.
Sie können auch Vorlagen für ein bereits vorhandenes Android Studio-Projekt verwenden. Gehen Sie einfach zu Datei > Neu > Aktivität > Einstellungen Aktivität.

Beachten Sie, dass die in Android Studio enthaltenen Vorlagen gut für einfache Layouts und die Erstellung einfacher Apps geeignet sind. Wenn Sie jedoch Ihre App wirklich in Schwung bringen möchten, sollten Sie einige der App-Vorlagen in Betracht ziehen, die von Envato Market erhältlich sind.
Sie sind eine enorme Zeitersparnis für erfahrene Entwickler, da sie ihnen helfen, den Aufwand für die Erstellung einer App von Grund auf zu überwinden und ihre Talente stattdessen auf die einzigartigen und angepassten Teile der Erstellung einer neuen App zu konzentrieren
Abschluss
In diesem Tutorial haben Sie gelernt, wie Sie App-Einstellungen in Android von Grund auf neu erstellen. Wir haben auch untersucht, wie Sie die Android Studio-Vorlagen einfach und schnell zum Erstellen von App-Einstellungen verwenden können.
Ich empfehle dringend, die offiziellen Materialdesign-Richtlinien für Einstellungen zu lesen, um mehr darüber zu erfahren, wie Sie Einstellungen in Android richtig entwerfen und verwenden. Sehen Sie sich auch den offiziellen API-Leitfaden an, um mehr über andere APIs zum Erstellen einer Einstellungsaktivität zu erfahren.
Um mehr über das Programmieren für Android zu erfahren, sehen Sie sich einige unserer anderen Kurse und Tutorials hier auf Envato Tuts+ an!
Android SDKAnzeigen von Materialdesign-Dialogfeldern in einer Android-AppChike Mgbemena
Android SDKSenden von Daten mit Retrofit 2 HTTP Client für AndroidChike Mgbemena
App-VorlagenDie 15 besten Android-App-Vorlagen von 2017Nona Blackman
Android SDKSo erstellen Sie eine Android-Chat-App mit FirebaseAshraff Hathibelagal



