Android 自定义 View 中 onKeyDown监听 没反应
2013-04-07 11:12
302 查看
刚刚学到View,不想看书了,自己动手一些简单的操作,才开始画图就出来问题了,居然按照方法来,监听事情不行了,明明添加 了监听
在网上找了些资料终于明白了:
原来是焦点问题,我们注意View中有监听事件,Activity也有监听事件,两个类的监听事件有些是相同 的,想想其实原因很简单,如果在Activity用View画图,你在View里添加监听事件,在Activity里面也添加相同监听事情的话,例如都添加onKeyDown事件,这样当你按下某个键的时候,系统 就不知道你需要调用哪个方法了,不知道用哪个监听 了,所以这就关系到焦点问题,谁拥有焦点,就调用谁的监听事件。
我们程序在运行的时候默认焦点是在Activity上,所以就会造成View里面的onKeyDown监听事件无效,所以只要在画图的时候,添加焦点就可以 了,如:
[java] view
plaincopy
public class SurfaceView1Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyViewTest1 mvt = new MyViewTest1(this);
mvt.setFocusable(true);
setContentView(mvt);
}
}
在网上找了些资料终于明白了:
原来是焦点问题,我们注意View中有监听事件,Activity也有监听事件,两个类的监听事件有些是相同 的,想想其实原因很简单,如果在Activity用View画图,你在View里添加监听事件,在Activity里面也添加相同监听事情的话,例如都添加onKeyDown事件,这样当你按下某个键的时候,系统 就不知道你需要调用哪个方法了,不知道用哪个监听 了,所以这就关系到焦点问题,谁拥有焦点,就调用谁的监听事件。
我们程序在运行的时候默认焦点是在Activity上,所以就会造成View里面的onKeyDown监听事件无效,所以只要在画图的时候,添加焦点就可以 了,如:
[java] view
plaincopy
public class SurfaceView1Activity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MyViewTest1 mvt = new MyViewTest1(this);
mvt.setFocusable(true);
setContentView(mvt);
}
}
相关文章推荐
- Android 自定义 View 中 onKeyDown监听 没反应
- Android 自定义 View 中 onKeyDown监听 没反应
- Android 自定义 View 中 onKeyDown监听 没反应
- Android自定义之TextView跑马灯的监听
- Android自定义viewgroup可滚动布局 GestureDetector手势监听(5)
- android 键盘监听EditView时,自定义键盘的确定按钮样式
- Android之自定义View的监听事件
- Android 自定义View 实现手势监听,左右滑动,上下滑动
- Android客户端之“微服私访”App的系统学习(七)XRecyclerView快速实现列表界面+自定义Search输入框,软键盘搜索按钮监听+TextView部分样式改变
- Android_自定义View-和view的监听事件
- Android 自定义view的监听事件
- Android开发-自定义View-AndroidStudio(九)手势监听类GestureDetector
- 关于Android自定义View中的onTouchEvent(MotionEvent event)事件监听
- android-自定义ViewGroup与onTouchEvent监听-随心
- Android 自定义View 分区域监听 回调
- 5.轮播广告AndroidImageSlider的使用(包括自定义indicator,和sliderview的点击监听事件,架构分析)
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- Android开发-自定义View-AndroidStudio(九)手势监听类GestureDetector
- Android自定义View之用观察者模式写自定义监听事件以及常用竖直型字母索引栏的写法
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态