2012-02-07 51 views
0

我的android算法有問題。我想在用戶按f時發生某些事情。或任何一句話,我已經試過其中大部分和空間,這是工作的唯一codition是:keyCode == KeyEvent.KEYCODE_F不會工作

if (keyCode == KeyEvent.KEYCODE_ENTER && event.getAction() == 0) 

下面是一個有問題的一部分:

else if(keyCode == KeyEvent.KEYCODE_F && v.getId() == R.id.EditText1) 
     { 
      .. certain algorithm .. 
     } 

感謝UR麻煩:)

+0

有守沒有任何問題「keyCode == KeyEvent.KEYCODE_F」你確定「v.getId()== R.id.EditText1」正在工作嗎? – Foggzie 2012-02-07 21:16:38

+1

你能調試哪種情況失敗? keyCode或v.getId()有可能你從android包中導入R而不是你的應用程序包? – 2012-02-07 21:18:27

+0

做一些日誌記錄,並且在你輸入第二個if()語句之前,記錄'v.getId()'和'R.id.EditText1'。什麼是'v'?我忘記了R.id.EditText1'會返回什麼,但是如果這是一個字符串,請使用'.compareTo(str)',而不是'=='。 – Jack 2012-02-07 21:22:49

回答

0
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_F) { 
     do something... 
    } 
    return super.onKeyDown(keyCode, event); 
} 

或者你會嘗試

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 
      do something... 
     return super.onKeyDown(keyCode, event); 
    }