UMAR-MOBITSOLUTIONS
UMAR-MOBITSOLUTIONS

Reputation: 78004

Android keyboard next button issue on EditText

I am facing an issue, I have username & password fields on activity, now when I click on username keyboard appears but no next button on it and I cannot move to next Edittext control through keyboard in this case, keyboard displays enter button in it as attached in screenshot which increases its height,

Can anyone guide me what is the solution to this problem (to display next button on edittext)?

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);

Upvotes: 63

Views: 91665

Answers (12)

Shivam Yadav
Shivam Yadav

Reputation: 1028

You need to take care of few things:

  1. Add android:singleLine="true".
  2. Add android:nextFocusDown="@+id/tv2" on your XML.
  3. Don't add android:imeOptions="actionNext", otherwise it will override above two attributes.

Upvotes: 4

Harsh Mittal
Harsh Mittal

Reputation: 3018

Another best solution would be:

android:singleLine="true" 
android:imeOptions="actionNext"

Upvotes: 9

Manohar
Manohar

Reputation: 23414

android:singleLine="true" is deprecated

use

 android:maxLines="1"
 android:inputType="text"

instead

Upvotes: 0

mehmoodnisar125
mehmoodnisar125

Reputation: 1527

Add

android:inputType="text"

line in your edittext tag. and your problem will be resolved.

Upvotes: 2

Kunal Dharaiya
Kunal Dharaiya

Reputation: 121

add your xml layout ,

in suppose u want 4 edittext in row so first three editext u set below,

android:imeOptions="actionNext"

and last one editext u set

android:imeOptions="actionDone"

u add line so add,Use

  android:singleLine="true" 

Upvotes: 5

Arpit Patel
Arpit Patel

Reputation: 8067

Just add android:singleLine="true" you don't need that code for that

Upvotes: 1

bebosh
bebosh

Reputation: 863

use this attribute:

android:inputType="textPersonName"

Upvotes: 2

deepak Sharma
deepak Sharma

Reputation: 1641

In your layout, just set the XML attributes android:imeOptions="actionNext" for your first three text boxes and android:imeOptions="actionDone" for the last one.

More Examples

Upvotes: 59

nijas
nijas

Reputation: 1899

Add android:singleLine="true" android:nextFocusDown="@+id/textView2" on your xml. Will show Next key and also focus to the next field.

Upvotes: 111

sumit pandey
sumit pandey

Reputation: 1221

Just add android:singleLine="true" to the EditText tag in the layout XML..

Upvotes: 1

SERPRO
SERPRO

Reputation: 10067

If your EditText is supposed to have only 1 line, add the attribute android:singleLine="true" on your XML, that will remove the Enter key and replace it with Next / Done button.

Upvotes: 7

Hiral Vadodaria
Hiral Vadodaria

Reputation: 19250

add this lines below your lines of code you provided:

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

Upvotes: 40

Related Questions