我已经搜索了如何执行此操作,但找不到任何解决方案。在这里,我有edittext1和edittext2,而carat / cursor位于edittext1,然后我按下软键盘中的“Next / Enter”键,carat / cursor必须位于edittext2中。当我按下“下一步/回车”键但未在edittext2中移动克拉/光标时,下面的片段收到了该事件。
edittext1.setOnKeyListener(new View.OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if(event.getKeyCode() == KeyEvent.KEYCODE_ENTER)
{
Editable e = edittext2.getText();
Selection.setSelection(e,e.length());
}
return false;
}
});
任何输入都将受到高度赞赏。感谢。
答案 0 :(得分:3)
您不能在XML中使用android:nextFocusDown
和android:nextFocusUp
,而不是在代码中执行此操作吗?以下是一些参考文献:
修改强>
根据您接受的答案,看起来您有一个可行的解决方案,但我认为我也可以使用XML路由。所以这是布局元素的工作版本:
<AutoCompleteTextView
android:id="@+id/autoCompleteTextViewRecipient"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:completionThreshold="1"
android:inputType="text"
android:maxLines="1"
android:hint="To"
android:imeOptions="actionNext"
android:nextFocusDown="@+id/editTextComposeMessage"
android:nextFocusUp="@+id/editTextComposeMessage"/>
<EditText
android:id="@+id/editTextComposeMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:imeOptions="actionNext"
android:nextFocusDown="@+id/autoCompleteTextViewRecipient"
android:nextFocusUp="@+id/autoCompleteTextViewRecipient"/>
差异在于AutoCompleteTextView
现在有nextFocusDown
,EditText
有nextFocusUp
,而且imeOptions
都设置为actionNext
答案 1 :(得分:1)
尝试使用此:
if(event.getKeyCode()== KeyEvent.KEYCODE_ENTER)
{
edittext2.requestFocus();
}
光标移动到edittext2。