如何保持对当前EditText的关注?

时间:2018-12-04 14:26:20

标签: android android-edittext android-input-method android-textinputedittext

我的片段中有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中?

1 个答案:

答案 0 :(得分:0)

使用此:

     android:imeOptions="actionDone"

无需监听任何keyEvent。