2011-04-09 79 views
2

即時通訊在webview中顯示網頁內容,我想禁用Android鍵盤的全部4個箭頭鍵。任何想法?如何禁用Android鍵盤的箭頭鍵

編輯:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    int a; 
    Log.d("yourTag",""+event.getAction()); 
    System.out.println(a=event.getAction()); 
    System.out.println(keyCode); 
     if(event.getAction()==20){ 
     return true; 
     } 
     else if(event.getAction()==21){ 
      return true; 
     } 
     else if(event.getAction()==22){ 
      return true; 
     } 
     else{ 
       return true; 
     } 

    } 

滾動仍然存在,但返回鍵以及菜單鍵被禁用,爲什麼?我注意到,如果內容滾動,它將不會返回任何內容。一旦滾動結束它(log.d消息)返回0.

回答

1

你可以在onkeydown捕獲它們嗎?

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(event.getAction() == /*INSERT YOUR KEY*/){ 
    //do something with the arrows. or ignore them 
    //return true or false depending on if you want to "catch" the event i guess 
    }else{ 
     return super.onKeyDown(keyCode, event); 
    } 
} 

你只需要找到箭頭鍵的代碼,這不應該很難。你甚至可以只是Log.d你的event.getAction(),並按下它們,找出它們叫什麼......

我真的不知道你在用你的調試代碼做什麼,但看看這個鏈接:http://developer.android.com/reference/android/view/KeyEvent.html關鍵事件。事件是整數。爲什麼不添加這個調試:

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    Log.d("yourTag",""+event.getAction()); 
} 

並看看返回的是什麼?我的猜測將是DPAD鍵之一,例如左(21)是你的目標

+0

@Nanne它返回0爲兩個箭頭鍵和沒有returna爲antohr 2箭頭鍵...我喜歡這個..系統。通過out.println(A = event.getAction()); \t \t 如果(event.getAction()==一個){ \t \t \t \t的System.out.println(a)的返回true; \t \t \t} else { \t \t System.out.println(「displays else」); \t return super.onKeyDown(keyCode,event); \t} \t \t} – vnshetty 2011-04-09 10:05:20

+0

查看已更新回答 – Nanne 2011-04-09 10:19:27

+0

@Naane yesyou是對的。但我想禁用按這些按鈕的滾動。我怎樣才能做到這一點? – vnshetty 2011-04-09 10:28:23