我有一段代码:
passwordEditText.setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_ENTER)
{
launch.performClick();
return true;
}
else
{
return false;
}
}
});
我想要的是当按下回车键时它执行登录命令(启动是执行登录的按钮)。但是,在执行 true block 之后,它还会继续执行 else block ,返回 false 并导致(仅在某些设备上)发生第二次登录。
所以我的问题分为两部分:if else 语句如何评估为真和假,以及我如何才能让它不那样做。我想到了一些技巧来实现这一点,但这似乎是一个更好理解然后迅速修补的问题。
最佳答案
你看到的是 OnKey 被触发了两次,第一次按下键,第二次按下键,所以你必须用
过滤它 if (event.getAction()!=KeyEvent.ACTION_DOWN) {
return true;
}
switch (keyCode) {
case KeyEvent.KEYCODE_1 :
//do something
break;
case KeyEvent.KEYCODE_2 :
//do something
break;
case KeyEvent.KEYCODE_3 :
//do something
break;
}
return true;
关于android - 为什么 if else 语句的两边都被执行了,如何解决?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7366287/