Android View onKeyUp()没有被调用

时间:2010-02-06 22:44:21

标签: android view

我是Android开发的新手,所以我想我有一个简单的问题,但我似乎无法弄清楚出了什么问题。

我基本上从样本中复制了LunarLander游戏示例,但我试图只复制我需要的部分来制作一个小乒乓球游戏。但由于某种原因,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);
    }

...
}

编辑解决方案:

我忘了把这一行放在我的View的构造函数中。

    setFocusable(true);

2 个答案:

答案 0 :(得分:4)

只有当您的视图具有可关注性且重点突出时,您才会获得关键事件。在游戏的情况下,您可以将视图设置为在触摸模式下可聚焦,以便自动获取关键事件。

答案 1 :(得分:0)

您使用的是带硬件键盘的设备,还是使用软(屏幕)键盘?我认为这些事件不会用软键盘触发。