Android IME_ACTION_NEXT不';I don’我无法处理版面的最后一个编辑文本

Android IME_ACTION_NEXT不';I don’我无法处理版面的最后一个编辑文本,android,android-layout,android-edittext,Android,Android Layout,Android Edittext,我有一个垂直的LinearLayout,带有EditTexts列表。Android自动为我处理IME操作:IME\u action\u NEXT用于所有EditTexts,但最后一个除外,它是IME\u action\u DONE 现在,我想通过编程将最后一个EditText的IME操作也设置为IME\u action\u NEXT,并将下一个EditText的ID设置为重点(第一个,允许用户在所有字段上“循环”)。但当我这样做的时候: int firstEditTextId = ... val

我有一个垂直的
LinearLayout
,带有
EditText
s列表。Android自动为我处理IME操作:
IME\u action\u NEXT
用于所有
EditText
s,但最后一个除外,它是
IME\u action\u DONE

现在,我想通过编程将最后一个
EditText
的IME操作也设置为
IME\u action\u NEXT
,并将下一个
EditText
的ID设置为重点(第一个,允许用户在所有字段上“循环”)。但当我这样做的时候:

int firstEditTextId = ...
valueView.setNextFocusDownId(firstEditTextId);
lastEditText.setImeOptions(EditorInfo.IME_FLAG_NAVIGATE_NEXT);
lastEditText.setImeActionLabel("Go to the first one, please", EditorInfo.IME_ACTION_NEXT);

它不起作用:在我的Android 7.1设备上,屏幕键盘上仍然显示“完成”图标。如何执行此操作?

您可以尝试将其设置为上次编辑的文本:

android:nextFocusForward="@+id/firstEditText"
你可以尝试使用

lastEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
而不是

lastEditText.setImeOptions(EditorInfo.IME_FLAG_NAVIGATE_NEXT);

我希望这能解决您的问题。

您可以尝试将其设置为上次编辑的文本:

android:nextFocusForward="@+id/firstEditText"
你可以尝试使用

lastEditText.setImeOptions(EditorInfo.IME_ACTION_NEXT);
而不是

lastEditText.setImeOptions(EditorInfo.IME_FLAG_NAVIGATE_NEXT);

我希望这能解决您的问题。

IME操作下一步仅在软键盘启动后两个字段都可见时起作用。IME操作下一步仅在软键盘启动后两个字段都可见时起作用。