我正在使用 2 个编辑文本创建登录屏幕:etUsername 和 etPassword。
在 etUsername 上,用户应输入用户名并按 Enter 进入编辑文本 etPassword,然后输入密码,按 Enter 登录。这是我当前的代码:
etUsername.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_ENTER)) {
etPassword.requestFocus();
return true;
} else
return false;
}
});
etPassword.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_ENTER)) {
loginToServer();
return true;
} else
return false;
}
});
但是当我输入用户名,然后按 Enter 时,程序会尝试登录服务器。
在调试模式下,我看到当我按下 Enter一次(在 etUsername 上)时,首先:调用 etUsername.onKey(),然后调用 etPassword.onKey()!
如何修改代码以使 ENTER 事件仅对当前字段处理一次?