Geben Sie den Typ der Eingabemethode an.

Schreiben Sie jetzt
Jetpack Compose ist das empfohlene UI-Toolkit für Android. Weitere Informationen zur Verwendung von Berührungen und Eingaben in „Schreiben“
<ph type="x-smartling-placeholder"></ph> Text KeyboardOptions →

Jedes Textfeld erfordert eine bestimmte Art von Texteingabe, z. B. eine E-Mail-Adresse, Telefonnummer oder Nur-Text. Sie müssen den Eingabetyp für jedes Textfeld in Ihrer App angeben, damit das System über die entsprechende weiche Eingabemethode, wie z. B. eine Bildschirmtastatur.

Neben den Schaltflächen, die mit einer Eingabemethode zur Verfügung stehen, können Sie auch Verhaltensweisen wie Gibt an, ob die Eingabemethode Rechtschreibvorschläge bereitstellt, neue Sätze großgeschrieben und das Feld Wagenrücklauftaste mit einer Aktionsschaltfläche wie Fertig oder Weiter. Auf dieser Seite wird beschrieben, um diese Merkmale anzugeben.

Tastaturtyp angeben

Geben Sie die Eingabemethode für Ihre Textfelder immer an, indem Sie den android:inputType dem Attribut <EditText>-Element.

<ph type="x-smartling-placeholder">
</ph> Telefoneingabe
Abbildung 1: Der Eingabetyp phone.

Wenn Sie beispielsweise eine Eingabemethode für die Eingabe einer Telefonnummer verwenden möchten, verwenden Sie die Methode "phone"-Wert:

<EditText
    android:id="@+id/phone"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/phone_hint"
    android:inputType="phone" />
<ph type="x-smartling-placeholder">
</ph> textPassword-Eingabetyp
Abbildung 2: Der Eingabetyp textPassword.

Wenn das Textfeld für ein Passwort ist, verwenden Sie den Wert "textPassword", sodass das Textfeld Die Eingabe des Nutzers wird verborgen:

<EditText
    android:id="@+id/password"
    android:hint="@string/password_hint"
    android:inputType="textPassword"
    ... />

Mit dem Attribut android:inputType sind mehrere mögliche Werte dokumentiert. und Sie können einige der Werte kombinieren, um die Darstellung der Eingabemethode und zusätzliche Verhaltensweisen.

Rechtschreibvorschläge und andere Funktionen aktivieren

<ph type="x-smartling-placeholder">
</ph> Autokorrektur
Abbildung 3: Wenn Sie textAutoCorrect hinzufügen, erhalten Sie eine Autokorrektur für Rechtschreibfehlern.

Mit dem Attribut android:inputType können Sie verschiedene Verhaltensweisen für die Eingabe festlegen. . Besonders wichtig ist, wenn das Textfeld für eine einfache Texteingabe vorgesehen ist, z. B. SMS: Automatische Rechtschreibkorrektur mit der "textAutoCorrect" aktivieren Wert.

Sie können verschiedene Verhaltensweisen und Stile der Eingabemethoden mit der Funktion Attribut „android:inputType“. So erstellen Sie beispielsweise ein Textfeld, mit einem Großbuchstaben am ersten Wort eines Satzes und einer automatischen Korrektur von Rechtschreibfehlern:

<EditText
    android:id="@+id/message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:inputType=
        "textCapSentences|textAutoCorrect"
    ... />

Aktion für die Eingabemethode angeben

Bei den meisten weichen Eingabemethoden befindet sich in der unteren Ecke eine Aktionsschaltfläche, die sich für in das aktuelle Textfeld ein. Standardmäßig verwendet das System diese Schaltfläche für einen Weiter- oder Fertig, es sei denn, das Textfeld unterstützt mehrzeiligen Text, z. B. mit android:inputType="textMultiLine". In diesem Fall ist die Aktionsschaltfläche ein Wagensymbol. zurückgeben. Sie können aber auch andere Aktionen festlegen, die für Ihr Textfeld besser geeignet sind. wie Senden oder Los.

Verwenden Sie zum Festlegen der Aktionsschaltfläche die android:imeOptions -Attribut mit einem Aktionswert wie "actionSend" oder "actionSearch". Für Beispiel:

<ph type="x-smartling-placeholder">
</ph> Schaltfläche „Senden“
Abbildung 4: Die Schaltfläche Senden wird angezeigt, wenn Sie android:imeOptions="actionSend"
<EditText
    android:id="@+id/search"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/search_hint"
    android:inputType="text"
    android:imeOptions="actionSend" />

Sie können dann auf das Drücken der Aktionsschaltfläche warten, indem Sie eine TextView.OnEditorActionListener für das EditText-Element. In der Listener, reagieren Sie auf die entsprechende IME-Aktions-ID, die im EditorInfo Klasse, zum Beispiel IME_ACTION_SEND, Dies wird im folgenden Beispiel gezeigt:

Kotlin

findViewById<EditText>(R.id.search).setOnEditorActionListener { v, actionId, event ->
    return@setOnEditorActionListener when (actionId) {
        EditorInfo.IME_ACTION_SEND -> {
            sendMessage()
            true
        }
        else -> false
    }
}

Java

EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {
    @Override
    public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
        boolean handled = false;
        if (actionId == EditorInfo.IME_ACTION_SEND) {
            sendMessage();
            handled = true;
        }
        return handled;
    }
});

Vorschläge für die automatische Vervollständigung

Wenn Sie Nutzern während der Eingabe Vorschläge machen möchten, können Sie eine abgeleitete Klasse von EditText angerufen AutoCompleteTextView. Um die automatische Vervollständigung zu implementieren, müssen Sie eine Adapter, der den Text bereitstellt Vorschläge machen. Je nachdem, woher die Daten stammen, sind verschiedene Adapter verfügbar, z. B. z. B. aus einer Datenbank oder einem Array.

<ph type="x-smartling-placeholder">
</ph> Textvorschläge
Abbildung 5: Beispiel für AutoCompleteTextView mit Text Vorschläge machen.

Im Folgenden wird beschrieben, wie Sie eine AutoCompleteTextView einrichten, die bietet Vorschläge aus einem Array mithilfe von ArrayAdapter:

  1. Fügen Sie Ihrem Layout AutoCompleteTextView hinzu. Hier ist ein Layout mit nur dem Text ein:
    <?xml version="1.0" encoding="utf-8"?>
    <AutoCompleteTextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/autocomplete_country"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
  2. Definieren Sie das Array, das alle Textvorschläge enthält. Hier ein Beispiel ein Array mit Ländernamen:
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="countries_array">
            <item>Afghanistan</item>
            <item>Albania</item>
            <item>Algeria</item>
            <item>American Samoa</item>
            <item>Andorra</item>
            <item>Angola</item>
            <item>Anguilla</item>
            <item>Antarctica</item>
            ...
        </string-array>
    </resources>
    
  3. In deinem Activity oder Fragment, verwenden Sie den folgenden Code, um geben Sie den Adapter an, der die Vorschläge bereitstellt:

    Kotlin

    // Get a reference to the AutoCompleteTextView in the layout.
    val textView = findViewById(R.id.autocomplete_country) as AutoCompleteTextView
    // Get the string array.
    val countries: Array<out String> = resources.getStringArray(R.array.countries_array)
    // Create the adapter and set it to the AutoCompleteTextView.
    ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries).also { adapter ->
        textView.setAdapter(adapter)
    }
    

    Java

    // Get a reference to the AutoCompleteTextView in the layout.
    AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autocomplete_country);
    // Get the string array.
    String[] countries = getResources().getStringArray(R.array.countries_array);
    // Create the adapter and set it to the AutoCompleteTextView.
    ArrayAdapter<String> adapter =
            new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, countries);
    textView.setAdapter(adapter);
    

    Im vorherigen Beispiel wird eine neue ArrayAdapter initialisiert, um jedes Element im countries_array-String-Array in ein TextView, die in der simple_list_item_1-Layout. Dieses Layout von Android bietet eine Standarddarstellung für Text in einer Liste.

  4. Weisen Sie den Adapter dem AutoCompleteTextView zu, indem Sie folgenden Befehl aufrufen: setAdapter().