【问题标题】:KeyEvent is triggering 2 events - can I add a delay?KeyEvent 正在触发 2 个事件 - 我可以添加延迟吗?
【发布时间】:2016-02-24 17:17:53
【问题描述】:

所以我有以下用于用户名和密码字段的代码。我想让 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);
}

【问题讨论】:

    标签: java android login focus


    【解决方案1】:

    您可以在 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);
        }
    

    希望这会有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 2017-02-22
      • 2018-04-02
      相关资源
      最近更新 更多