您的位置:首页 > 移动开发 > Android开发

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);  

    }  

}  

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐