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.
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" />
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">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:
<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.
Im Folgenden wird beschrieben, wie Sie eine AutoCompleteTextView
einrichten, die
bietet Vorschläge aus einem Array mithilfe von
ArrayAdapter
:
- 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" />
- 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>
- In deinem
Activity
oderFragment
, 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 imcountries_array
-String-Array in einTextView
, die in dersimple_list_item_1
-Layout. Dieses Layout von Android bietet eine Standarddarstellung für Text in einer Liste. -
Weisen Sie den Adapter dem
AutoCompleteTextView
zu, indem Sie folgenden Befehl aufrufen:setAdapter()
.