我有一个代码块:为什么执行if else语句的两边,以及如何解决它?
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;
}
}
});
我要的是,当输入键被按下它执行日志中的命令(发射的是,在执行日志的按钮)。但是,执行完真块后,它将继续执行else块,并返回false并导致(仅在某些设备上)第二次登录。
所以我的问题分两部分:if else语句如何评估为true和false,以及如何才能使它不这样做。我想到了一些技巧来实现这一点,但这似乎是一个更好理解,然后迅速修补的问题。
此外,如果我扭转它,这样它的keyCode!= KeyEvent.KEYCODE_ENTER它关系到正确的块(else块),但是它运行两次反正! – Pyrodante
你是否尝试过对这个事件处理函数进行日志方法调用?看起来它是在按下Enter之后处理另一个事件的,一个else语句不会被评估为true和false,任何编译器都不会有这样一个奇怪的错误,所以你需要假设这不是导致你的问题的原因 – rsalmeidafl
它的一个关键的下一个和一个关键的双重火灾 – JPM