2014-09-22 86 views
0

我正在学习一本书的应用程序开发,并且遇到了AVD的问题。我有我的代码设置为改变一些文字按下右箭头键时:Android的AVD箭头键不起作用

public boolean onKeyDown(int keyCode, KeyEvent event){ 
      if(keyCode==KeyEvent.KEYCODE_DPAD_RIGHT){ 
       textUpdate(); 
       return true; 
      } 
      return false; 
     } 

当我运行的虚拟设备,然后按箭头键没有任何反应。当我按下我的物理键盘上的箭头键时,仍然没有。我做了大量的研究,找不到解决方案。我试过编辑avd设置并编辑设备(Nexus One)本身来接受键盘和dpad输入。我现在应该尝试什么?

+0

您是否在设备设置中启用了硬件键盘? – markas 2014-09-23 02:55:55

+0

如果你的意思是选择硬件键盘存在并使用主机GPU,那么是的。 – Ngatesh 2014-09-23 22:21:25

回答

0

好吧,有什么事是我的onkeydown()函数是一个片段内。我不知道为什么,但是当我将这些代码移入mainActivity时,它工作正常。如果任何人有答案,为什么这个工作,以及如何让它在片段中的工作,请评论。

谢谢

0

你重写了该方法吗? 这个函数应该有一个@Override。

重写每次触发时都会起作用的调用,以便您可以将其修改为您的特定实现。

希望这会有帮助

+0

当我添加@Override时出现错误:“mainactivity.placeholder片段类型的onKeyDown(int,keyEvent)方法必须实现或覆盖超类型方法” – Ngatesh 2014-09-22 23:49:16

0

“箭头键”是指在Android设备上的后退键? 如果是,那么你应该重写onBackPressed

@Override 
public void onBackPressed() { 
    // do something 
} 
+0

不,我的意思是拨号盘上的右键。上,下,左,右,中心。 – Ngatesh 2014-09-23 22:09:15

+0

与之前的答案相同:onBackPressed必须覆盖或实现超类型方法。 – Ngatesh 2014-09-23 22:17:41