2010-06-22 18 views
5

mam definiując edycji tekstu jak tak ...Android EditText pytanie, należy wymienić klawiaturę wprowadzić z done

<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" 
> 

chciałbym zastąpić „enter”, który automatycznie pojawia się na klawiaturze, z gotowy przycisk, który po prostu zamknie klawiaturę, gdy użytkownik ją uderzy. Widziałem to już w kilku aplikacjach (np. W aplikacji Nexus One na Twitterze) i chciałbym zaimplementować coś podobnego. czy ktoś wie jak?

Możliwe jest również automatyczne wyświetlanie tekstu, który pojawia się automatycznie, gdy użytkownik kliknie w celu edytowania pola editekstu? Dzięki,

Odpowiedz

11

Proste rozwiązanie: dodaj android:singleLine="true" dla EditText. Spowoduje to zastąpienie wprowadzania następną (dla wszystkich editekstów z wyjątkiem ostatniej) i Gotowe (dla ostatniej).

+0

to działało! dzięki! jeszcze jedno, jak wyłączyć słownik? – Skizit

+3

użyj 'android: inputType =" textNoSuggestions "' – cristis

+3

btw, możesz ustawić niestandardową akcję zamiast domyślnej (następna/wykonana) za pomocą 'android: imeOptions' – cristis

2

O drugim pytaniu dotyczącym automatycznego usuwania tekstu należy go zamieścić w pozycji android:hint zamiast android:text.

+0

datz to dobra obserwacja, ale nie odpowiedź :) +1 –

3

Wystarczy dodać w pliku XML EditText: android:imeOptions="actionDone"

1
android:imeOptions="actionNext" 

Zastępuje nazwę klawisza ENTER, „Next” w wirtualnej klawiaturze i klikając na niego - koncentrują przeskakuje do następnego pola

w układzie, by zrobić takie rzeczy

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

iw Javie

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

Do ciebie należy decyzja, które pole będzie wymagało fokusowania.

2

Oto uaktualniony odpowiedź:

android:maxLines="1" 

Przyjęty odpowiedź android:singleLine="true" została zaniechana.

Powiązane problemy