Reputation: 78004
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)?
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
Reputation: 1028
You need to take care of few things:
android:singleLine="true"
. android:nextFocusDown="@+id/tv2"
on your XML. android:imeOptions="actionNext"
, otherwise it will override above two attributes.Upvotes: 4
Reputation: 3018
Another best solution would be:
android:singleLine="true"
android:imeOptions="actionNext"
Upvotes: 9
Reputation: 23414
android:singleLine="true"
is deprecated
use
android:maxLines="1"
android:inputType="text"
instead
Upvotes: 0
Reputation: 1527
Add
android:inputType="text"
line in your edittext tag. and your problem will be resolved.
Upvotes: 2
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
Reputation: 8067
Just add android:singleLine="true" you don't need that code for that
Upvotes: 1
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.
Upvotes: 59
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
Reputation: 1221
Just add android:singleLine="true" to the EditText tag in the layout XML..
Upvotes: 1
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
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