Setting EditText imeOptions to actionNext has no effect

∥☆過路亽.° 提交于 2019-11-28 06:07:37
Surendra Kumar

Just add android:maxLines="1" & android:inputType="text" to your EditText. It will work!! :)

pratnala

singleLine is deprecated. Adding an input type (eg: android:inputType="text") also worked for me.

Use android:maxLines="1" as singleLine is deprecated

android:singleLine has been deprecated, it is better to combine android:maxLines="1" with android:inputType="text". This would be the code:

<EditText
        android:id="@+id/editText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:maxLines="1"
        android:inputType="text"
        />

The answers given here were all very helpful, but I was still struggling to get my keyboard's "Next" to show.

Turns out that when you use Android's android:digits attribute in your XML, it prevents the android:imeOptions="actionNext" from working as expected.

The answer is actually to use the deprecated android:singleLine="True". This seems to force the IME Option to be respected.

Old, Non-Working Code

        <android.support.design.widget.TextInputEditText
            android:id="@+id/first_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
            android:ellipsize="end"
            android:hint="@string/first_name"
            android:imeOptions="actionNext"
            android:inputType="textCapWords"
            android:maxLength="35"
            android:maxLines="1" />

Working Code

        <android.support.design.widget.TextInputEditText
            android:id="@+id/first_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- "
            android:ellipsize="end"
            android:hint="@string/first_name"
            android:imeOptions="actionNext"
            android:inputType="textCapWords"
            android:maxLength="35"
            android:maxLines="1"
            android:singleLine="true" />

I'm not a fan of using a deprecated attribute, but for now it seems to get the desired result.

influx

single line deprecated so you add below code I think inputType must.

        <EditText 
            android:inputType="text"
            android:maxLines="1"
            android:imeOptions="actionNext" />

Finally i have got sure solution for this issue Just add these 3 lines in your edit text and it will be working fine

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

Here you can add maxLines according to your requirement. Do not use singleLine as it is deprecated now. Good luck!

android:inputType="text"

You have to specify an inputType in order for imeOptions to function.

pavan bangalala

Key here is to set input type and imeOptions attributes

<EditText 
   android:inputType="number"
   android:maxLines="1"
   android:imeOptions="actionSearch" />
<EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/auth_register_re_password"
            android:hint="Enter Password Again"
            android:imeActionLabel="login"
            android:gravity="center"
            android:imeOptions="actionUnspecified"
            android:inputType="textPassword"
            android:maxLines="1"
             />

Only this worked for me.

Change it:

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

on that:

android:singleLine="true"
android:inputType="text"
android:imeOptions="actionNext"
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!