2010-02-06 204 views
0

我是Android开发的新手,所以我想我有一个简单的问题,但我似乎无法弄清楚什么是错的。Android查看onKeyUp()没有被调用

我基本上从示例中复制了LunarLander游戏示例,但我试图仅复制所需的部分以制作一个pong游戏或其他东西。但由于某些原因,onKeyUp和onKeyDown没有被调用。部分问题是我仍然不确定Android的调试方法是什么。

public class PongView extends SurfaceView implements SurfaceHolder.Callback{ 

... 

    /** 
    * Standard override for key up. Used to move the paddles 
    * @return 
    */ 
    @Override 
    public boolean onKeyUp(int keyCode, KeyEvent msg) { 
      return thread.doKeyUp(keyCode, msg); 
    } 

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent msg) { 
     return thread.doKeyDown(keyCode, msg); 
    } 

... 
} 

编辑解决方案:

我忘了这条线在我看来的构造。

setFocusable(true); 

回答

4

只有在您的观点是可以关注焦点的情况下才能获得关键活动。在游戏的情况下,您可以将您的视图设置为可在触摸模式下进行对焦,以便自动获取关键事件。

0

您是否正在使用带有硬件键盘的设备,或者您使用软屏幕键盘?我不认为这些事件会通过软键盘触发。

+0

我只是在模拟器中运行它,并且它们在LunarLander示例中使用相同的模拟器正常工作。 – 2010-02-07 00:39:19