EditText: Was es ist, Attribute und die Arbeit mit Eingabefeldern in Android

Autor: IT Sectr Veröffentlicht: 2026-07-07 Lesezeit: 9 Min.

EditText ist eine grundlegende Android-Komponente, die für die Eingabe und Bearbeitung von Text in der Benutzeroberfläche entwickelt wurde. Sie erbt von TextView und ermöglicht die Zeicheneingabe über virtuelle oder physische Tastaturen. EditText unterstützt viele Modi: ein- und mehrzeiligen Text, Passwörter, Zahlen, E-Mail-Adressen und Telefonnummern. Laut Android Developers (2026) wird EditText in über 90 % der Android-Apps zum Erstellen von Formularen, Suchfeldern, Chats und Dateneingabebildschirmen verwendet.

Wichtige Punkte

  • EditText ist die grundlegende Texteingabekomponente in Android, eine Unterklasse von TextView.
  • Eingabemodi — unterstützt Text, Zahlen, Passwörter, E-Mail, Telefon und mehrzeilige Eingabe.
  • XML-Attribute — Konfiguration über inputType, maxLines, hint, textColorHint und andere Parameter.
  • Listener — TextWatcher zum Verfolgen von Änderungen und OnEditorActionListener zum Behandeln von Aktionen.
  • Material Design — TextInputLayout erweitert EditText um schwebende Beschriftungen und Fehlermeldungen.

Was ist EditText in Android

EditText ist eine Klasse aus dem Paket android.widget, die ein interaktives Textfeld für die Benutzereingabe implementiert. In der Android-Vererbungshierarchie erweitert EditText TextView, sodass es alle Eigenschaften einer Textbeschriftung einschließlich Schriftart-, Farb- und Ausrichtungsverwaltung erbt. Der Hauptunterschied zwischen EditText und TextView besteht in der Möglichkeit, Inhalte zu bearbeiten — der Benutzer kann Text direkt in der Oberfläche eingeben, löschen und ändern.

Jeder EditText ist mit einer Editable-Instanz verbunden, die den eingegebenen Text speichert und Einfüge-, Lösch- und Ersetzungsoperationen unterstützt. Beim Tippen verwaltet EditText automatisch die Cursorposition, die Textauswahl und einen Änderungsverlauf für Rückgängig/Wiederholen. Laut dem Android Developers Guide (2026) unterstützt EditText auch die Autovervollständigung über die Klasse AutoCompleteTextView, die von EditText erbt.

Die Architektur von EditText basiert auf der Trennung von Modell (Editable), Ansicht (TextView) und Controller (InputConnection). Bei Fokuserstellung erstellt EditText einen InputConnection, über den das Eingabesystem Zeichen, Tastendrücke und Bearbeitungsbefehle übergibt. Dieser Mechanismus gewährleistet Kompatibilität mit allen Eingabemethoden — von virtuellen Tastaturen über physische Bluetooth-Tastaturen bis hin zur Spracheingabe.

kotlin
val editText = EditText(context).apply {
    hint = "Text eingeben"
    inputType = InputType.TYPE_CLASS_TEXT
    maxLines = 1
    setTextColor(Color.parseColor("#000000"))
}

Wichtige EditText-Attribute

EditText bietet Dutzende von Attributen zur Feineinstellung von Verhalten und Aussehen. Sie können sowohl in XML-Layouts als auch programmatisch über Kotlin oder Java festgelegt werden. Die Attribute sind in Kategorien unterteilt: Textsteuerung, Einschränkungen, visuelle Gestaltung und Tastaturinteraktion.

AttributBeschreibungBeispielwert
android:hintHinweistext, der in einem leeren Feld angezeigt wird"E-Mail eingeben"
android:inputTypeEingabemodus (Text, Zahl, Passwort, usw.)textEmailAddress
android:maxLinesMaximale Anzahl von Zeilen3
android:maxLengthMaximale Textlänge in Zeichen100
android:textColorHintFarbe des Hinweistextes#999999

Das Attribut android:hint ist eines der wichtigsten — es teilt dem Benutzer mit, welche Daten im Feld erwartet werden. Bei Texteingabe wird der Hinweis automatisch ausgeblendet. Der Hinweis nimmt nicht am Formularversand teil und wird nicht als Feldwert gespeichert. Material Design empfiehlt, anstelle eines einfachen Hinweises TextInputLayout mit schwebender Beschriftung für ein moderneres Aussehen zu verwenden.

  • android:selectAllOnFocus — wählt den gesamten Text bei Fokuserhalt aus (nützlich für Suchfelder).
  • android:maxLength — begrenzt die Anzahl der eingegebenen Zeichen, Überschuss wird abgeschnitten.
  • android:lines — legt eine feste Feldhöhe in Zeilen fest (im Gegensatz zu minLines).
  • android:gravity — Textausrichtung innerhalb des Feldes: left, center, top, usw.
xml
                <!-- EditText in XML layout -->
@+id/etEmail
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Enter email"
android:inputType="textEmailAddress"
android:maxLines="1"
android:importantForAutofill="yes" />

Eingabemodi und inputType

Das Attribut inputType bestimmt, welche Tastaturart dem Benutzer angezeigt wird und welche Zeichen für die Eingabe zulässig sind. Es ist eine Bitmaske, bei der die Eingabeklasse (TYPE_CLASS_TEXT, TYPE_CLASS_NUMBER, TYPE_CLASS_PHONE) mit Modifikatoren kombiniert wird.

Jeder Eingabemodus ändert nicht nur das Tastaturlayout, sondern beeinflusst auch die Textverarbeitung: Im Zahlenmodus sind nur Ziffern und Dezimaltrennzeichen erlaubt, im E-Mail-Modus sind das @-Symbol und Domain-Erweiterungen verfügbar, und im Telefonmodus werden Ziffern sowie die Symbole +, #, * angezeigt. Die Wahl des richtigen inputType beeinflusst die Benutzererfahrung erheblich — eine ungeeignete Tastatur zwingt Benutzer zum Wechseln des Modus, was die Ausfüllzeit des Formulars um 30–50 % erhöht.

Laut den Material Design Guidelines (2025) wird empfohlen, den spezifischsten inputType für jedes Feld zu verwenden: textPassword für Passwörter, numberDecimal für Preise, phone für Telefonnummern, textMultiLine für mehrzeilige Eingabe. Dies beschleunigt das Ausfüllen von Formularen und reduziert Eingabefehler.

kotlin
// Programmatische inputType-Einrichtung
editText.inputType = InputType.TYPE_CLASS_TEXT or
    InputType.TYPE_TEXT_FLAG_CAP_SENTENCES or
    InputType.TYPE_TEXT_FLAG_AUTO_CORRECT

EditText-Listener: TextWatcher und OnEditorActionListener

TextWatcher ist ein Interface zur Echtzeitverfolgung von Textänderungen in EditText. Es enthält drei Methoden: beforeTextChanged wird vor einer Änderung aufgerufen, onTextChanged während der Änderung, afterTextChanged nach Abschluss der Textänderung. TextWatcher wird für Eingabevalidierung, Zeichenzählung, Suche und Autovervollständigung verwendet.

OnEditorActionListener behandelt Benutzeraktionen auf der Tastatur: Drücken von Done (IME_ACTION_DONE), Search (IME_ACTION_SEARCH), Send (IME_ACTION_SEND), Next (IME_ACTION_NEXT) und anderen. Dieser Listener ist besonders nützlich für die Organisation der Formularnavigation — bei Drücken von Next wechselt der Fokus automatisch zum nächsten Feld, und bei Drücken von Done wird die Tastatur ausgeblendet und der Versand durchgeführt.

Laut dem Android Developers Blog (2025) ermöglicht die richtige Verwendung von OnEditorActionListener mit dem Attribut android:imeOptions die Erstellung intuitiver Formulare ohne zusätzliche Senden-Schaltflächen — der Benutzer füllt die Felder aus und drückt Done auf der Tastatur, was das Speichern oder Suchen auslöst.

kotlin
// TextWatcher für E-Mail-Validierung
editText.addTextChangedListener(object : TextWatcher {
    override fun afterTextChanged(s: Editable?) {
        val isValid = Patterns.EMAIL_ADDRESS.matcher(s).matches()
        editText.error = if (isValid) null else "Invalid email format"
    }
})

// OnEditorActionListener für Formularabsendung
editText.setOnEditorActionListener { _, actionId, _ ->
    if (actionId == EditorInfo.IME_ACTION_DONE) {
        submitForm()
        true
    } else false
}

Codebeispiele mit EditText

Betrachten wir ein vollständiges Beispiel für die Erstellung eines Anmeldebildschirms mit EditText für E-Mail- und Passworteingabe. Dieses Beispiel zeigt die inputType-Konfiguration, Validierung über TextWatcher und die Behandlung des Anmelde-Button-Klicks.

XML-Layout des Anmeldebildschirms

xml
@+id/etLoginEmail
android:layout_width="match_parent"
android:hint="Email"
android:inputType="textEmailAddress"
android:maxLines="1" />

@+id/etLoginPassword
android:layout_width="match_parent"
android:hint="Password"
android:inputType="textPassword"
android:maxLines="1" />

Programmatische Einrichtung von EditText

kotlin
class LoginFragment : Fragment() {
    private lateinit var etEmail: EditText
    private lateinit var etPassword: EditText

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        etEmail = view.findViewById(R.id.etLoginEmail)
        etPassword = view.findViewById(R.id.etLoginPassword)

        etEmail.addTextChangedListener(emailWatcher)
        etPassword.setOnEditorActionListener { _, actionId, _ ->
            if (actionId == EditorInfo.IME_ACTION_DONE) {
                performLogin()
                true
            } else false
        }
    }
}

EditText gestalten

EditText unterstützt die Anpassung über XML-Attribute, Designs und Stile. Es können Textfarbe, Hinweisfarbe, Unterstreichungsfarbe (backgroundTint), Schriftstil, Textgröße und vieles mehr geändert werden. Material Components bietet das Design MaterialComponents.EditText mit benutzerdefinierten Attributen wie boxStrokeColor, boxBackgroundColor und endIconMode.

Um die Unterstreichungsfarbe von EditText zu ändern, verwenden Sie das Attribut android:backgroundTint, das die Farbe für den Standard- und Fokuszustand festlegt. In Material Design wird die Unterstreichungsfarbe über colorPrimary des Designs gesteuert. Für eine vollständige Anpassung können Sie ein benutzerdefiniertes Drawable für den Hintergrund im Ordner res/drawable erstellen.

StilAttributErgebnis
Textfarbeandroid:textColorÄndert die Farbe des eingegebenen Textes
Hinweisfarbeandroid:textColorHintÄndert die Farbe des Hinweistextes
Unterstreichungandroid:backgroundTintÄndert die Farbe der Linie unter dem Feld
Schriftgrößeandroid:textSizeLegt die Textgröße in sp fest
Schriftartandroid:fontFamilyWendet eine benutzerdefinierte Schriftart an

Um einen einheitlichen Stil für alle EditText-Felder in Ihrer App zu erstellen, empfiehlt es sich, einen globalen Stil im Design zu definieren. Material Design bietet den Stil Widget.MaterialComponents.TextInputLayout.OutlinedBox, der automatisch auf alle Eingabefelder angewendet wird, die TextInputLayout verwenden. Dies gewährleistet ein konsistentes Erscheinungsbild ohne Duplizieren von Attributen in jedem Layout.

Häufig gestellte Fragen

Was ist der Unterschied zwischen EditText und TextView?

EditText erbt von TextView und fügt Textbearbeitungsfunktionen hinzu. TextView zeigt nur Text an, während EditText dem Benutzer ermöglicht, Inhalte einzugeben, zu löschen und zu ändern. EditText unterstützt auch inputType, TextWatcher, Cursorverwaltung und andere dateneingabebezogene Funktionen.

Wie kann ich bestimmte Zeichen in EditText einschränken?

Verwenden Sie InputFilter — ein Interface zum Filtern von Eingabezeichen. EditText unterstützt das Festlegen eines Filter-Arrays über die Methode setFilters(). Beispielsweise begrenzt InputFilter.LengthFilter die Textlänge, während ein benutzerdefinierter InputFilter bestimmte Zeichen, reguläre Ausdrücke oder Unicode-Bereiche einschränken kann.

Wie erhalte ich Text aus EditText im Code?

Rufen Sie editText.text.toString() in Kotlin oder editText.getText().toString() in Java auf. Die Eigenschaft text gibt Editable zurück, das über toString() in einen String umgewandelt wird. Überprüfen Sie vor der Verwendung des Textes immer auf null und leere Werte, insbesondere in Formularen mit Pflichtfeldern.

Wie mache ich EditText mehrzeilig?

Setzen Sie das Attribut android:inputType="textMultiLine" oder fügen Sie programmatisch das Flag InputType.TYPE_TEXT_FLAG_MULTI_LINE hinzu. Im mehrzeiligen Modus erlaubt EditText Zeilenumbrüche mit Enter und wird automatisch in der Höhe erweitert. Verwenden Sie android:maxLines oder android:minLines, um die Höhe zu begrenzen.

Wie deaktiviere ich EditText zur Bearbeitung?

Setzen Sie das Attribut android:enabled="false" oder rufen Sie editText.isEnabled = false im Code auf. Ein deaktivierter EditText reagiert nicht auf Berührungen, kann keinen Fokus erhalten und wird in Grau angezeigt (deaktivierter Zustand). Eine Alternative ist die Verwendung von android:focusable="false", das die Eingabe deaktiviert, aber das normale Erscheinungsbild beibehält.

Zusammenfassung

  • EditText ist die grundlegende Texteingabekomponente in Android, eine Unterklasse von TextView mit Bearbeitungsunterstützung.
  • inputType bestimmt den Tastaturmodus und die erlaubten Zeichen: Text, Zahl, E-Mail, Telefon, Passwort.
  • TextWatcher ermöglicht die Echtzeitverfolgung von Textänderungen zur Validierung und Autovervollständigung.
  • OnEditorActionListener behandelt Tastaturaktionen: Done, Search, Next, Send.
  • InputFilter schränkt Eingabezeichen und Textlänge durch benutzerdefinierte Filter ein.
  • Attribute wie hint, maxLines, maxLength, textColorHint konfigurieren Verhalten und Aussehen.
  • Material Design über TextInputLayout bietet eine moderne Optik mit schwebenden Beschriftungen und Fehlern.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch