imeOptions "actionNext" programmatically - how to jump to next field?

AndroidTextviewImeImeoptions

Android Problem Overview


In layout XML it is possible to specify android:imeOptions="actionNext" which adds Next button in virtual keyboard and by clicking on it - focus jumps to the next field.

How to do this programmatically - e.g. based on some event trigger focus to go to the next field?

Android Solutions


Solution 1 - Android

You can use the constants from EditorInfo class for the IME options. like,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

Solution 2 - Android

Search for the next focusable field and than invoke requestFocus().

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();

Solution 3 - Android

Just suggestion, if you are using

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

it doesn't work, make sure that your EditText is using a single line.

> Eg: > > editTextSample.setSingleLine();

Solution 4 - Android

There is always necessity to add extra keys apart from default keys available in virtual QWERTY keyboard.

Using XML

<EditText android:text="@+id/EditText01" 
android:id="@+id/EditText01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:imeOptions="actionDone"/>

By Programmatic Way

An EditorInfo is most useful class when you have to deal with any type of user input in your Android application.

IME_ACTION_DONE: This action performs a “done” operation for nothing to input and the IME will be closed.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

For more information you may visit http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html

Solution 5 - Android

The kotlin pendant

editText.imeOptions = EditorInfo.IME_ACTION_DONE

Solution 6 - Android

editText.setLines(1);
editText.setSingleLine(true);
editText.setImeOptions(EditorInfo.IME_ACTION_GO);

I solve the problem make sure with single line and go next editText when click enter

Solution 7 - Android

In my case, set an imeOptions fix the problem.

edtAnswer.maxLines = 1
edtAnswer.inputType = InputType.TYPE_CLASS_TEXT
edtAnswer.imeOptions = EditorInfo.IME_ACTION_NEXT

Solution 8 - Android

I tried all of the answers but EditorAction worked for me!

> EditText.onEditorAction(EditorInfo.IME_ACTION_NEXT)

My XML layout:

  <EditText
            android:id="@+id/input1"
            style="@style/edittext"
            android:nextFocusForward="@id/input2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/input2"
            style="@style/edittext"
            android:nextFocusLeft="@id/input1"
            android:layout_weight="1"
            android:nextFocusRight="@id/input3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>

and Kotlin code:

input1.onEditorAction(EditorInfo.IME_ACTION_NEXT)

Now focus moves to the input2 Edittext.

Solution 9 - Android

You can do this by

edittext.imeOptions = EditorInfo.IME_ACTION_DONE //for done button

or

edittext.imeOptions = EditorInfo.IME_ACTION_NEXT //for next button

But... you need to understand that if you are using filters for edittext then you need to set

edittext.setSingleLine()

Solution 10 - Android

You can jump to the next field by using the following code:

BaseInputConnection inputConnection = new BaseInputConnection(editText, true);
inputConnection.performEditorAction(EditorInfo.IME_ACTION_NEXT);
//Use EditorInfo.IME_ACTION_UNSPECIFIED if you set android:imeOptions on the EditText

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionLaimoncijusView Question on Stackoverflow
Solution 1 - AndroidMSDView Answer on Stackoverflow
Solution 2 - AndroidJustinView Answer on Stackoverflow
Solution 3 - AndroidziniestroView Answer on Stackoverflow
Solution 4 - AndroidIntelliJ AmiyaView Answer on Stackoverflow
Solution 5 - AndroidkuzduView Answer on Stackoverflow
Solution 6 - AndroidHandelikaView Answer on Stackoverflow
Solution 7 - AndroidMeteView Answer on Stackoverflow
Solution 8 - AndroidSiamakView Answer on Stackoverflow
Solution 9 - AndroidKishan SolankiView Answer on Stackoverflow
Solution 10 - AndroidPierreView Answer on Stackoverflow