2010-06-22 14 views
5

Sto definendo un testo di modifica in questo modo ...EditText Android domanda, sostituire la tastiera immettere con 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" 
> 

mi piacerebbe sostituire il tasto che compare sulla tastiera automaticamente "entrare", con un pulsante fatto che chiuderebbe semplicemente la tastiera quando l'utente lo colpisce. Ho visto questo fatto su un paio di app (ad esempio l'app Nexus One su Twitter) e vorrei implementare qualcosa di simile. qualcuno sa come?

Inoltre è possibile ottenere il testo che appare di default per la cancellazione automatica quando l'utente fa clic per modificare la casella di modifica? Grazie,

risposta

11

Soluzione semplice: aggiungi android:singleLine="true" per Modifica testo. Questo sostituirà l'invio con Avanti (per tutti gli edittexts tranne l'ultimo) e Fatto (per l'ultimo).

+0

ha funzionato! Grazie! ancora una cosa, come potrei spegnere il dizionario? – Skizit

+3

usa 'android: inputType =" textNoSuggestions "' – cristis

+3

btw, puoi impostare un'azione personalizzata invece di quella predefinita (next/done) con 'android: imeOptions' – cristis

2

Per quanto riguarda l'altra domanda, il testo da cancellare automaticamente deve essere incluso in android:hint anziché android:text.

+0

datz una buona osservazione ma non la risposta :) +1 –

3

Basta aggiungere nel XML EditText: android:imeOptions="actionDone"

1
android:imeOptions="actionNext" 

sostituisce il nome della chiave entrare con "Avanti" nella tastiera virtuale e cliccando su di esso - focus passa al campo successivo

nel layout, si dovrebbe fare cose come questa

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

E in Java

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

Sta a te decidere quale campo richiederà lo stato attivo successivo.

2

Qui è una risposta aggiornata:

android:maxLines="1" 

La risposta accettata di android:singleLine="true" è stato sconsigliato.

Problemi correlati