imeOptions以编程方式“ actionNext”-如何跳转到下一个字段?


91

在布局XML中,可以指定虚拟键盘中的android:imeOptions="actionNext"哪个添加Next按钮,然后单击它-焦点跳至下一个字段。

如何以编程方式执行此操作-例如基于某个事件触发焦点以转到下一个字段?

Answers:


191

您可以将EditorInfo类中的常量用于IME选项。喜欢,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

是的,否则它会插入新行并跳转到该行=)
Ilker Baltaci

2
这如何回答OP的问题?这不会自动跳到下一个字段。
hitmaneidos

27

搜索下一个可聚焦字段,然后调用requestFocus()

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

2
参考该问题的标题,这不是真正的答案,但从技术上来说,这是一个有效的答案。下面的答案更合适。
肖恩·格洛弗

4
@SeanGlover切勿使用以下词语因为答案的位置会不断变化。
Nike15年

19

只是建议,如果您正在使用

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

它不起作用,请确保您的EditText使用单行。

例如:

       editTextSample.setSingleLine();

1
谢谢。这应该是公认的答案。只需在setImeOptions之前调用setSingleLine()。
赫尔曼

8

除了虚拟QWERTY键盘中可用的默认键外,总是需要添加额外的键。

使用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

EditorInfo当您必须处理Android应用程序中的任何类型的用户输入时,这是最有用的类。

IME_ACTION_DONE: 此操作将执行“完成”操作,无任何输入,并且IME将关闭。

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);

有关更多信息,您可以访问http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html


1

Kotlin吊坠

editText.imeOptions = EditorInfo.IME_ACTION_DONE

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

我解决了这个问题,请确保单行并在单击Enter时转到下一个editText


0

就我而言,设置imeOptions可解决该问题。

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

0

你可以这样做

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

要么

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

但是... 您需要了解,如果您对edittext使用过滤器,则需要设置

edittext.setSingleLine()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.