web-dev-qa-db-fra.com

Problème du bouton suivant du clavier Android sur EditText

Je suis confronté à un problème. Les champs nom d'utilisateur et mot de passe sont actifs. Maintenant, lorsque je clique sur le nom d'utilisateur, le clavier apparaît, mais aucun bouton suivant ne s'affiche et je ne peux pas passer au contrôle suivant Edittext via le clavier. Dans ce cas, le clavier affiche le bouton entrer comme attaché en capture d'écran qui augmente sa hauteur,

Quelqu'un peut-il me guider quelle est la solution à ce problème (pour afficher le bouton suivant sur edittext)?

enter image description here

Mon code

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

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

ajoutez ces lignes ci-dessous les lignes de code que vous avez fournies:

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;
    }
});
35
Hiral

Ajouter Android:singleLine="true" Android:nextFocusDown="@+id/textView2" sur votre xml . Affiche la clé suivante et se concentre également sur le champ suivant.

100
nijas

Dans votre mise en page, définissez simplement les attributs XML Android:imeOptions="actionNext" pour vos trois premières zones de texte et Android:imeOptions="actionDone" pour la dernière. 

Plus d'exemples

49
deepak Sharma

Une autre meilleure solution serait:

Android:singleLine="true" 
Android:imeOptions="actionNext"
7
Harsh Mittal

Si votre EditText est censé avoir une seule ligne, ajoutez l'attribut Android:singleLine="true" sur votre XML, cela supprimera la clé Entrée et le remplacera par le bouton Next/Done.

7
SERPRO

ajoutez votre mise en page xml,

supposons que tu veux 4 edittext en rangée donc trois premiers editext u mis en dessous,

Android:imeOptions="actionNext"

et le dernier editext u set 

Android:imeOptions="actionDone"

vous ajoutez la ligne alors ajoutez, utilisez

  Android:singleLine="true" 
4
Kunal Dharaiya

utiliser cet attribut:

Android:inputType="textPersonName"
2
bebosh

Ajouter

Android: inputType = "text"

ligne dans votre balise edittext. et votre problème sera résolu.

1
mehmoodnisar125

Ajoutez simplement Android: singleLine = "true" à la balise EditText dans le layout XML.

1
sumit pandey

Ajoutez simplement Android: singleLine = "true" vous n'avez pas besoin de ce code pour cela 

1
Arpit Patel

Vous devez prendre soin de peu de choses: 

  1. Ajoutez Android:singleLine="true"
  2. Ajoutez Android:nextFocusDown="@+id/tv2" sur votre XML. 
  3. N'ajoutez pas Android:imeOptions="actionNext", sinon il remplacera deux attributs.
0
Shivam Yadav

Android:singleLine="true" est obsolète

utilisation

 Android:maxLines="1"
 Android:inputType="text"

au lieu

0
Manohar Reddy