2013-04-16 60 views
4

我試圖捕獲由箭頭鍵(向上,向下,向右和向左)生成的事件並禁用它們。下面的代碼片段來自一個activity類。在android中禁用DPAD鍵

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    if(event.getAction() == KeyEvent.KEYCODE_DPAD_DOWN) return true; 
    else return true; 
} 

但是,使用這些代碼,鍵導航工作正常。我嘗試添加關鍵的偵聽器,這也是行不通的。

目標設備是Android 2.2版本的三星GT-I5500。

我錯過了什麼?

+0

我不知道是什麼返回event.getAction但也許嘗試,如果(的keyCode == KeyEvent.KEYCODE_DPAD_DOWN) – MP23

+0

我試過太用!但不工作。 – Renjith

回答

0

documentation,它是說,你應該返回:

  • 真正如果你處理的事件
  • 如果如果你想允許事件由處理下一個接收器

你的方法返回false,所以你傳遞事件的默認密鑰處理

+0

檢查編輯!我現在從該方法返回true。但鍵仍然啓用 – Renjith

6

覆蓋也和onkeydown事件返回true,而不是假的。 Somnething這樣的:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    switch (keyCode) { 
     case KeyEvent.KEYCODE_DPAD_LEFT: 
     case KeyEvent.KEYCODE_DPAD_RIGHT: 
     case KeyEvent.KEYCODE_DPAD_UP: 
     case KeyEvent.KEYCODE_DPAD_DOWN: 
      return true; 
    } 
    return false; 
} 
+0

感謝您的答案!但是,它幾乎沒有任何改變。順便說一下,我的選項卡是tabHost和TabGroupActivity。那麼我有什麼需要照顧的嗎? – Renjith