gpt4 book ai didi

android - 处理 KeyListener 上的编辑文本?

转载 作者:太空宇宙 更新时间:2023-11-03 13:37:57 26 4
gpt4 key购买 nike

我正在使用 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 时,程序会尝试登录服务器。

在 Debug模式下,我看到当我按 Enter 一次(在 etUsername 上)然后首先:调用 etUsername.onKey(),然后调用 etPassword.onKey()!

如何修改代码,使 ENTER 事件只对当前字段处理一次?

最佳答案

在检查哪个键被按下之前,尝试添加一个检查哪个键事件发生。我猜它首先触发按下键事件,然后将焦点移动到第二个文本字段,这里它也触发按下键事件。

有关如何检查事件类型和 key 的示例,请参见此处:Use "ENTER" key on softkeyboard instead of clicking button

我不是 100% 确定这一点,但值得一试 :-)

关于android - 处理 KeyListener 上的编辑文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4545162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com