代码之家  ›  专栏  ›  技术社区  ›  Bill Prin

android view onkeyup()未被调用

  •  0
  • Bill Prin  · 技术社区  · 16 年前

    我是一个新来的安卓开发人员,所以我想我有一个简单的问题,但我似乎不知道出了什么问题。

    我基本上是从样本中复制了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);
        }
    
    ...
    }
    

    编辑解决方案:

    我忘了将此行放入视图的构造函数中。

        setFocusable(true);
    
    2 回复  |  直到 16 年前
        1
  •  4
  •   Romain Guy    16 年前

    只有当视图可聚焦且聚焦时,才会获得关键事件。在游戏中,您可以将视图设置为可在触摸模式下调焦,以自动获得关键事件。

        2
  •  0
  •   Mark B    16 年前

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