我已经创建了一个简单的Android游戏,基于Lunar Lander示例,我遇到了处理关键事件的问题.当活动开始时,onKeyDown或onKeyUp被调用的唯一键是dpad上/下/左/右键.菜单,后退或dpad_center键都不会触发onKey方法.但是,一旦我按下其中一个dpad上/下/左/右按钮,按下菜单,后退或dpad_center键就会触发这些方法.我没有收到任何错误或任何错误的迹象.
焦点可能设置错误 – 活动从屏幕上的按钮开始,因此可能处于触摸屏模式.如果是这种情况,不应该触摸后退按钮让我进入正确的对焦模式,以便我可以抓住事件?
我正在使用SDK-1.5r3中的模拟器.我还没能在真正的手机上试试这个.这是我的onKeyDown.
public boolean onKeyDown(int keyCode, KeyEvent msg){ Log.d(TAG, "onKeyDown: " + keyCode); return super.onKeyDown(keyCode, msg);}
谢谢
马特
解决方法:
这个onKeyDown是在视图中还是在活动中?
如果调用setContentVIEw传入视图,并且该视图调用了setFocusable(true),则所有键事件都将绕过活动并直接进入视图.
另一方面,如果你的onKeyDown在视图中,并且你没有在Activity上调用setContentVIEw并且在视图上没有调用setFocusable(true),那么你的Activity将获得关键事件而不是VIEw.
寻找那些特定的电话,但我认为你是一个焦点问题是正确的.
总结以上是内存溢出为你收集整理的onKeyDown并不总是在Android应用程序中调用全部内容,希望文章能够帮你解决onKeyDown并不总是在Android应用程序中调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)