如何禁用Android键盘的箭头键

时间:2011-04-09 08:56:43

标签: android emulation

我在webview中显示网页内容,我想禁用Android键盘的全4箭头键。任何想法?

编辑:

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 个答案:

答案 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);
  }
}

你只需要找到箭头键的代码,这不应该是难的。您甚至可以只记录您的event.getAction(),然后按下它们,找出它们的名称......

我真的不知道你在使用调试代码做了什么,但请查看以下链接:http://developer.android.com/reference/android/view/KeyEvent.html了解关键事件。事件是整数。为什么不在调试中添加它:

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

看看有什么回复?我的猜测是DPAD个键之一,例如left(21)是你的目标