所以我有一个用户名和密码字段的代码。我想在Android中使用Enter键将光标移动到密码字段。这是有效的,但是,我的代码也会触发密码字段来调用signUpOrLogin函数。
有没有办法添加延迟或解决此问题的方法?
if (usernameField.hasFocus() && keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
passwordField.requestFocus();
}
if (passwordField.hasFocus() && keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
signUpOrLogin(v);
}
答案 0 :(得分:0)
您可以在if语句中添加isEmpty()
以检查是否已使用TextField
。这将使得字段必须具有要执行的语句的值。您的代码如下所示:
(请注意,我没有测试过这个)
if (!usernameField.getText().isEmpty() && usernameField.hasFocus() && KeyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
passwordField.requestFocus();
}
if (!passwordField.getText().isEmpty() && passwordField.hasFocus() && keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == KeyEvent.ACTION_DOWN){
signUpOrLogin(v);
}
希望这会有所帮助。 :)