将EditText imeOptions设置为actionNext不起作用
我有一个相当复杂(不是真正的)的XML布局文件。 其中一个视图是带有两个子项的LinearLayout( v1
):一个EditText( v2
)和另一个LinearLayout( v3
)。 子代LinearLayout又有一个EditText( v4
)和一个ImageView( v5
)。
对于EditText v2我有imeOptions as
android:imeOptions="actionNext"
但是当我运行应用程序,键盘的return
不检查next
,我希望它改变到next
。 我该如何解决这个问题?
另外,当用户点击下一个时,我想集中到EditText v4。 我该怎么做?
对于那些真的需要看到一些代码的人:
<LinearLayout android:id="@+id/do_txt_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/col6" android:orientation="vertical" android:visibility="gone" > <EditText android:id="@+id/gm_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dp" android:background="@drawable/coldo_text" android:hint="@string/enter_title" android:maxLines="1" android:imeOptions="actionNext" android:padding="5dp" android:textColor="pigc7" android:textSize="ads2" /> <LinearLayout android:layout_width="match_parent" android:layout_height="100dp" android:orientation="horizontal" > <EditText android:id="@+id/rev_text" android:layout_width="0dp" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:layout_margin="5dp" android:layout_weight="1" android:background="@drawable/coldo_text" android:hint="@string/enter_msg" android:maxLines="2" android:padding="5dp" android:textColor="pigc7" android:textSize="ads2" /> <ImageView android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center_vertical" android:background="@drawable/colbtn_r” android:clickable="true" android:onClick=“clickAct” android:paddingLeft="5dp" android:paddingRight="5dp" android:src="@drawable/abcat” /> </LinearLayout> </LinearLayout>
只需将android:maxLines="1" & android:inputType="text"
到您的EditText中即可。 它会工作! 🙂
singleLine
已被弃用。 添加一个inputtypes(例如: android:inputType="text"
)也适用于我。
不推荐使用android:maxLines="1"
作为singleLine
android:singleLine
已被弃用,最好将android:maxLines="1"
与android:inputType="text"
。 这将是代码:
<EditText android:id="@+id/editText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines="1" android:inputType="text" />
单行弃用,所以你添加下面的代码,我认为inputType必须。
<EditText android:inputType="text" android:maxLines="1" android:imeOptions="actionNext" />
android:inputType="text"
您必须指定一个inputType才能使imeOptions起作用。
最后,我已经确定了解决这个问题的方法只需在编辑文本中添加这3行 ,它将工作正常
android:maxLines="1" android:inputType="text" android:imeOptions="actionDone"
在这里您可以根据您的要求添加maxLines 。 不要使用singleLine,因为它现在已经被弃用了。 祝你好运!
这里的关键是设置inputtypes和imeOptions属性
<EditText android:inputType="number" android:maxLines="1" android:imeOptions="actionSearch" />
这里给出的答案都非常有帮助,但我仍然努力让我的键盘的“下一步”显示。
原来,当你在你的XML中使用Android的android:digits
属性时,它会阻止android:imeOptions="actionNext"
按预期工作。
答案实际上是使用弃用的android:singleLine="True"
。 这似乎迫使IME选项得到尊重。
旧的非工作代码
<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.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" />
我不喜欢使用已弃用的属性,但现在它似乎得到了预期的结果。
<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" />