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

Lai*_*jus 88 android android-widget

在布局XML,可以指定android:imeOptions="actionNext"其将Next在虚拟键盘上按一下按钮-焦点跳跃到下一个字段.

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

小智 180

您可以使用EditorInfo类中的常量作为IME选项.喜欢,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
Run Code Online (Sandbox Code Playgroud)

  • 这如何回答 OP 的问题?这不会自动跳转到下一个字段。 (5认同)

Jus*_*tin 27

搜索下一个可聚焦字段而不是调用requestFocus().

TextView nextField = (TextView)currentField.focusSearch(View.FOCUS_RIGHT);
nextField.requestFocus();
Run Code Online (Sandbox Code Playgroud)

  • @SeanGlover你永远不应该使用像***下面***这样的单词,因为答案的位置会不断变化. (3认同)
  • 对于这个问题的标题,这不是一个真正的答案,但它在技术上是一个有效的答案.以下答案更合适. (2认同)

zin*_*tro 15

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

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 
Run Code Online (Sandbox Code Playgroud)

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

例如:

       editTextSample.setSingleLine();
Run Code Online (Sandbox Code Playgroud)


Int*_*iya 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"/>
Run Code Online (Sandbox Code Playgroud)

By Programmatic Way

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

IME_ACTION_DONE: 此操作执行"完成"操作,无需输入任何内容,IME将关闭.

 EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE);
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请访问http://developer.android.com/reference/android/view/inputmethod/EditorInfo.html