【发布时间】:2014-03-06 06:41:42
【问题描述】:
我们在第一个EditText 中输入值。现在我想当我们按下完成按钮时光标移动到下一个EditText。
我尝试这样做并在 Google 上搜索,但没有找到。
【问题讨论】:
我们在第一个EditText 中输入值。现在我想当我们按下完成按钮时光标移动到下一个EditText。
我尝试这样做并在 Google 上搜索,但没有找到。
【问题讨论】:
你可以获得DONE按钮点击并设置焦点到下一个EditText
first_edit_text.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == 0 || actionId== EditorInfo.IME_ACTION_DONE)
{
next_edit_text.requestFocus();
}
return false;
}
});
编辑:
满足您的要求:
public void setEditText() {
edittext = new EditText[length];
for (int i = 0; i < length; i++) {
edittext[i] = new EditText(this);
edittext[i].setId(i);
edittext[i].setSingleLine();
edittext[i].setImeOptions(EditorInfo.IME_ACTION_DONE);
edittext[i].setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == 0 || actionId == EditorInfo.IME_ACTION_DONE) {
int current_id= v.getId();
if((current_id+1)!=length){
edittext[current_id+1].requestFocus();
}
}
return false;
}
});
linear.addView(edittext[i]);
}
}
【讨论】:
请在 EditText 中使用 imeOptions。
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="32dp"
android:layout_marginTop="16dp"
android:imeOptions="actionNext"
android:ems="10" >
<requestFocus />
</EditText>
【讨论】:
比嗅探键简单得多:尝试设置android:singleLine="true" 和android:imeOptions="actionNext"(至少对于单行输入文本视图)。在 Android documentation 中阅读更多有关 TextView 的内容。重复:Android edittext key return goes to next text
【讨论】:
您可以尝试在 DONE 键的onClick 中触发 Next 键的点击,如下所示:
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_DONE) {
Activity.dispatchKeyEvent(KeyEvent.KEYCODE_NEXT); //trigger Next key's click here
}
return false;
}
});
希望对您有所帮助。
【讨论】:
在文本中输入值后, 要转到下一个编辑框,您可以输入 xml 布局编辑框代码,如下所示:
android:nextFocusDown="@+id/here your next edit box id"
【讨论】:
如果您将android:singleLine="true" 放在EditText 上,它会自动将键盘上的Enter 按钮变为下一步 按钮。
【讨论】: