2010-06-22 7 views
5

ich einen Text bearbeiten wie so bin definieren ...Android EditText Frage, ersetzen Tastatur mit done eingeben

<EditText 
android:id="@+id/user" 
android:layout_width="200px" 
android:layout_height="wrap_content" 
android:text="Username" 
android:textSize="18sp" 
android:gravity="center" 
android:layout_x="64px" 
android:layout_y="140px" 
> 

Ich möchte die „Enter“ -Taste, um zu ersetzen, die automatisch auf der Tastatur angezeigt wird, mit eine Fertig-Taste, die die Tastatur einfach schließt, wenn der Benutzer sie berührt. Ich habe das in einigen Apps (z. B. der Nexus One twitter App) gesehen und möchte etwas Ähnliches implementieren. Weiß jemand wie?

Ist es auch möglich, den Text, der standardmäßig angezeigt wird, automatisch zu löschen, wenn der Benutzer das Edittext-Feld bearbeitet? Danke,

Antwort

11

Einfache Lösung: fügen Sie android:singleLine="true" für den EditText hinzu. Dies ersetzt die Eingabe durch "Weiter" (für alle Editiertexte mit Ausnahme des letzten) und "Fertig" (für das letzte).

+0

das hat funktioniert! Vielen Dank! noch eine Sache, wie würde ich Wörterbuch ausschalten? – Skizit

+3

Verwenden Sie 'android: inputType =" textNoSuggestions "' – cristis

+3

BTW, können Sie eine benutzerdefinierte Aktion anstelle der Standard (nächste/getan) mit 'android: imeOptions' – cristis

2

Über Ihre andere Frage, den Text zum automatischen Löschen zu bekommen, sollten Sie es in android:hint anstelle von android:text einschließen.

+0

datz eine gute Beobachtung, aber nicht die Antwort :) +1 –

3

Fügen Sie einfach in der EditText XML: android:imeOptions="actionDone"

1
android:imeOptions="actionNext" 

Er ersetzt die Namen der Enter-Taste mit „Weiter“ in der virtuellen Tastatur und durch Anklicken - Fokus springt zum nächsten Feld

in Ihrem Layout, würden Sie Dinge wie diese

<EditText 
    ... 
    android:text="Field 1" 
    android:imeOptions="actionNext" /> 
<EditText 
    ... 
    android:text="Field 2" 
    android:imeOptions="actionNext" /> 

Und in Java

TextView field2 = (TextView) field1.focusSearch(View.FOCUS_RIGHT); 
field2.requestFocus(); 

Es liegt an Ihnen zu entscheiden, welches Feld als nächstes den Fokus anfordern wird. Hier

2

ist eine aktualisierte Antwort:

android:maxLines="1" 

Die akzeptierte Antwort von android:singleLine="true" ist veraltet.

Verwandte Themen