androidimeoptions

OnEditorActionListener with imeOptions actionNext not working


Here is my code:

<android.support.design.widget.TextInputLayout
        android:id="@+id/mylayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/some_layout">
        <android.support.design.widget.TextInputEditText
            android:id="@+id/myid"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:hint="@string/some_hint"
            android:imeOptions="actionNext"
            android:inputType="time"
            android:maxLength="@integer/max_input_length"
            android:maxLines="1"
            android:singleLine="true"
            android:textSize="15sp"/>
    </android.support.design.widget.TextInputLayout>

and the Java code:

myField = (TextInputEditText) findViewById(R.id.myid);
    myField.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            boolean handled = false;
            if (actionId == EditorInfo.IME_ACTION_NEXT) {
                Log.d(TAG,"next");
                //Do something
                handled = true;
            }
            Log.d(TAG,"handled: "+handled);
            return handled;
        }
    });`

Unfortunately when I press the next button on the keyboard nothing happens. The cursor doesn't jump to the next field. I can't see what I am missing


Solution

  • As per doc

    IME_ACTION_NEXT

    Bits of IME_MASK_ACTION: the action key performs a "next" operation, taking the user to the next field that will accept text.

    So it means it will focus on next focusable object like edittext or auto complete text view. so if no other object can get focus it will not move focus.