我有一个带有两个 EditText 字段的活动。因此,当我在第一个中按 enter 时,第二个成为焦点。
但是,有时我想禁用第一个 EditText 中的 Enter 键(例如,当我认为用户没有正确输入第一个 EditText 时)。
当关键事件是 KEYCODE_ENTER 时,我已经覆盖了第一个 EditText 返回 true 的 onKeyDown 但这没有帮助。
我该怎么办?
我有一个带有两个 EditText 字段的活动。因此,当我在第一个中按 enter 时,第二个成为焦点。
但是,有时我想禁用第一个 EditText 中的 Enter 键(例如,当我认为用户没有正确输入第一个 EditText 时)。
当关键事件是 KEYCODE_ENTER 时,我已经覆盖了第一个 EditText 返回 true 的 onKeyDown 但这没有帮助。
我该怎么办?
添加一个 OnFocusChangeListener 怎么样?当您的 EditText 失去焦点时,您可以进行验证并可以为“正确”字段执行 requestFocus。
只需添加一个 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;
}
});