一般我们都会在xml文件中去定义要在程序中使用的一些控件,最新的ADT会为每一个activity同时生成两个xml文件,一个是activity_main.xml,另一个就是fragment_main.xml。刚开始我不懂两者的区别,就在fragment_main.xml中定义在activity中使用的控件,Eclipse不会报错。如果不添加控件的一些事件如点击,应用程序就可以正常运行。但如果添加了控件的事件处理,运行时应用程序 就会崩溃。
通过查看Logcat,系统提示空指针异常,但我怎么也查不到导致异常出现的代码,只能一行一行地排查,最后发现是在寻找控件的id时出错,找不到这个id对应的控件。可这个id我明明就在fragment_main.xml中定义并加入的。后来经过上网查询相关的知识,将在fragment_main.xml中定义的控件全部转到activity_main.xml中,应用程序就可正常运行了。
如此可见,要在某一个activity中使用的控件一定在要相应的activity.xml定义,这样方便添加控件的事件处理,不能在其他的xml文件中去定义,否则系统不会报错,但你的应用程序会崩溃。希望可以对像我一样刚学android的新手有一定的帮助。同时我也不明白为什么会这样?如果有前辈知道为什么,请评论告诉一下。
Android中布局的一些常识
时间: 2024-11-07 01:00:56