2012-01-25 18 views
48

Sono di fronte a un problema ho nome utente & campi password su attività, ora quando clicco sul nome utente appare tastiera ma nessun pulsante successivo su di esso e non posso passare al controllo successivo Edittext tramite tastiera in questo caso, la tastiera visualizza il pulsante inserito come allegato nello screenshot che ne aumenta l'altezza,Tastiera Android numero successivo su EditText

Qualcuno mi guida qual è la soluzione a questo problema (per visualizzare il prossimo pulsante in edittext)?

qualsiasi aiuto sarebbe apprezzato enter image description here

My Code

txtUserid = (EditText)findViewById(R.id.txtUserID); 
     txtUserPasword = (EditText)findViewById(R.id.txtPassword); 

     txtUserid.setNextFocusDownId(R.id.txtPassword); 
     txtUserPasword.setNextFocusDownId(R.id.btnLogin); 

risposta

29

aggiungi a linee sotto le righe di codice che hai fornito:

txtUserid.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 
      // If the event is a key-down event on the "enter" button 
      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
       (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       // Perform action on Enter key press 
       txtUserid.clearFocus(); 
       txtUserPasword.requestFocus(); 
       return true; 
      } 
      return false; 
    } 
}); 

txtUserPasword.setOnKeyListener(new OnKeyListener() { 

    public boolean onKey(View v, int keyCode, KeyEvent event) { 

      if ((event.getAction() == KeyEvent.ACTION_DOWN) && 
        (keyCode == KeyEvent.KEYCODE_ENTER)) 
      { 
       // Perform action on Enter key press 
       // check for username - password correctness here 
       return true; 
      } 
      return false; 
    } 
}); 
+0

grazie per la risposta, ha smesso di altezza crescente EditText ma ancora non ho modo di passare al prossimo editext :( – UMAR

+0

controlla la mia risposta modificata.Linea in onKeyListener di txtUserid è stata modificata. – Hiral

+0

grazie ha funzionato! – UMAR

47

nel layout, è sufficiente impostare gli attributi XML android:imeOptions="actionNext" per le prime tre caselle di testo e android:imeOptions="actionDone" per l'ultimo.

More Examples

+1

l'ho usato su edittext ma non so perché non funziona. :( – UMAR

+0

Il secondo link è interrotto – slott

+0

Sì perché il sito di sviluppatori di Android è stato aggiornato .. potrebbe essere quello il motivo –

5

Se il EditText si suppone di avere solo 1 riga, aggiungere l'attributo android:singleLine="true" sul XML, che rimuoverà il tasto Invio e sostituirlo con Successiva/Fatto pulsante.

+0

no, non è il caso, grazie per la risposta :) – UMAR

1

Basta aggiungere Android: SingleLine = "true" al tag EditText nel XML di layout ..

+0

singola riga risolvono il mio problema –

+0

È deprecato. Usa 'android: maxLines =" 1 "' invece – Prabs

95

Aggiungi android:singleLine="true" android:nextFocusDown="@+id/textView2" sul tuo XML. Mostrerà il tasto Successivo e si concentrerà anche sul campo successivo.

+2

Questo funziona per me, anche se potrebbe essere importante notare che se si imposta android: imeOptions = "actionNext", allora sovrascriverà gli attributi menzionati in questa risposta – user1549672

+2

Se si utilizza android: singleLine = "true" significa che è abbastanza buono da visualizzare il pulsante "next" sulla tastiera – prabu

+2

Funziona per me anche quando mi sbarazzo di 'android: imeOptions =" ​​actionNext "' –

2

utilizzare questo attributo:

android:inputType="textPersonName" 
1

Basta aggiungere Android: SingleLine = "true" non è necessario che il codice per quella

2

Un'altra soluzione migliore sarebbe:

android:singleLine="true" 
android:imeOptions="next" 
+0

"next" genera un errore: "Errore: (48, 45) I tipi di stringhe non sono consentiti (in 'imeOptions' con valore 'next').". Dovrebbe essere "actionNext". And android: singleLine = "true" è deprecato. Usa Android: maxLines = "1" invece. – jk7

2

aggiungi il tuo layout xml,

in supporre di volere 4 edittext in fila così i primi tre editext u se t sotto,

android:imeOptions="actionNext" 

e ultimo EditExt u impostare

android:imeOptions="actionDone" 

u aggiungere la linea in modo da aggiungere, Usa

android:singleLine="true" 
+0

stranamente MaxLines = "1" non ha funzionato sul mio Galaxy 4, ha dovuto usare singleLine = "true" – user330844

+0

singleline = "true" è deprecato ma ha funzionato bro ,, –

Problemi correlati