我有一個代碼塊:爲什麼執行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