我的片段中有3个EditText(editText1,editText2和editText3)。
当我在软键盘上单击“下一步”时,当前焦点将移至下一个EditText。我还要检查那些Editbox的内容是否有效(例如有效的电子邮件等)。假设checkEditText_()正常工作。
对于editText1我解决了类似的问题:
editText1.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_NAVIGATE_NEXT)) {
if (!checkEditText1()) { // editText1 content fail
editText1.clearFocus();
editText1.requestFocus();
edi tText1.selectAll();
} else if (!checkEditText2()) { // editText2 content fail
editText1.clearFocus();
editText2.requestFocus();
} else if (!checkEditText3()){ // editText3 content fail
editText1.clearFocus();
editText3.requestFocus();
}
return true;
}
return false;
}
});
对于editText1,当不引用其自身的内容时,它将保留并保持对自身的关注。
否则,它将专注于其他两个其余的editText,以推动用户纠正那里的错误。
但是,当checkEditText1()失败时,它不会像第一个if子句中那样聚焦。
如何正确保留在当前的EditText中?
最佳答案
用这个:
android:imeOptions="actionDone"
无需监听任何keyEvent。