0

我有一个带有两个 EditText 字段的活动。因此,当我在第一个中按 enter 时,第二个成为焦点。

但是,有时我想禁用第一个 EditText 中的 Enter 键(例如,当我认为用户没有正确输入第一个 EditText 时)。

当关键事件是 KEYCODE_ENTER 时,我已经覆盖了第一个 EditText 返回 true 的 onKeyDown 但这没有帮助。

我该怎么办?

4

2 回答 2

0

添加一个 OnFocusChangeListener 怎么样?当您的 EditText 失去焦点时,您可以进行验证并可以为“正确”字段执行 requestFocus。

于 2011-10-17T20:22:52.040 回答
0

只需添加一个 editorActionListener:

editText1.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) {
                if(isValidContent(editText1.getText().toString()){
                    editText2.requestFocus();
                    return true;
                } else {
                       ....
                }
            }
            return false;
        }
    });
于 2016-06-24T13:38:06.353 回答