我使用SurfaceView进行程序界面的绘制,并在他的构造函数里使用setFocusable(true)获取焦点,然后重载了onKeyDown(int keyCode, KeyEvent event)来处理键盘事件。最后在Activity中使用 setContentView(SurfaceView)来让绘制的内容显示在窗口上。但是奇怪的是,SurfaceView无法获得键盘事件,键盘事件还是直接发送到Activity中去了。这到底怎么回事啊,我都执行获取焦点的语句了,该怎么解决这个问题?
解决方案 »
- android的服务端用java怎么写?
- SharedPreferences为什么要绑定个Acitity?没有Activity的地方怎么用?
- android 软键盘 设置输入法按键 屏蔽
- 如何设置appwidget的高度
- ANDORID 定义问题
- 利用HttpURLConnection向网络发送xml 数据
- 关于Intent flag
- android studio的两个严重的问题 请大神进
- listView长按事件内修改ListView对象内容
- sql创建一个数据库2张表,运行崩溃no such table
- android编程中,intent组件是个神马东东?
- android手机媒体库files扫描到所有文件,但是视频、音频、图片子表没有数据
提到最前?这句话我是写在Activity的onCreate方法里的
SurfaceView.onKeyDown(keyCode,event);
试试:欢迎加入群:106501352一起学习
或者在activity监听中return掉
setLongClickable(true);
需要着两行才能正常工作 不要忘记 两行对应键盘焦点 不是一个键盘一个触屏