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

时间:2010-08-11 14:08:35

标签: android android-widget

在布局XML中,可以指定android:imeOptions="actionNext"在虚拟键盘中添加Next按钮并通过单击它 - 焦点跳转到下一个字段。

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

9 个答案:

答案 0 :(得分:172)

您可以使用EditorInfo类中的常量作为IME选项。 等,

editText.setImeOptions(EditorInfo.IME_ACTION_NEXT);

答案 1 :(得分:26)

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

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

答案 2 :(得分:15)

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

     EditTextSample.setImeOptions(EditorInfo.IME_ACTION_DONE); 

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

  

例如:

       editTextSample.setSingleLine();

答案 3 :(得分:0)

kotlin吊坠

editText.imeOptions = EditorInfo.IME_ACTION_DONE

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

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

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

答案 6 :(得分:0)

您可以通过以下方式实现

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

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

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

edittext.setSingleLine()

答案 7 :(得分:0)

您可以使用以下代码跳转到下一个字段:

BaseInputConnection inputConnection = new BaseInputConnection(editText, true);
inputConnection.performEditorAction(EditorInfo.IME_ACTION_NEXT);
//Use EditorInfo.IME_ACTION_UNSPECIFIED if you set android:imeOptions on the EditText

答案 8 :(得分:0)

我尝试了所有答案,但 EditorAction 对我有用!

<块引用>

EditText.onEditorAction(EditorInfo.IME_ACTION_NEXT)

我的 XML 布局:

  <EditText
            android:id="@+id/input1"
            style="@style/edittext"
            android:nextFocusForward="@id/input2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/input2"
            style="@style/edittext"
            android:nextFocusLeft="@id/input1"
            android:layout_weight="1"
            android:nextFocusRight="@id/input3"
            android:layout_width="0dp"
            android:layout_height="wrap_content"/>

和 Kotlin 代码:

input1.onEditorAction(EditorInfo.IME_ACTION_NEXT)

现在焦点移到input2 Edittext。