我使用SurfaceView进行程序界面的绘制,并在他的构造函数里使用setFocusable(true)获取焦点,然后重载了onKeyDown(int keyCode, KeyEvent event)来处理键盘事件。最后在Activity中使用 setContentView(SurfaceView)来让绘制的内容显示在窗口上。但是奇怪的是,SurfaceView无法获得键盘事件,键盘事件还是直接发送到Activity中去了。这到底怎么回事啊,我都执行获取焦点的语句了,该怎么解决这个问题?
解决方案 »
- 请教各位高手一个android 绘图和线程的问题
- Android
- android2.2 浏览阿拉伯语的网站?文字显示方向相反
- 点击联系人的头像,弹出的动画效果
- 关于getFromLocationName的使用方法
- 有什么办法保留版本A的数据到版本B呢?
- 求教大神,如何导入sdk
- android 有什么方法可以获取 路由器的牌子,比如说是TPLink,还是其他的?
- 安卓收到socket传输过来的YUV视频流怎么播放
- Android studio 中出现emulation: WARNING: UpdateCheck:Failure: Error 时该怎样解决呢?
- android编程中,intent组件是个神马东东?
- android手机媒体库files扫描到所有文件,但是视频、音频、图片子表没有数据
提到最前?这句话我是写在Activity的onCreate方法里的
SurfaceView.onKeyDown(keyCode,event);
试试:欢迎加入群:106501352一起学习
或者在activity监听中return掉
setLongClickable(true);
需要着两行才能正常工作 不要忘记 两行对应键盘焦点 不是一个键盘一个触屏