今天一个朋友问到一个问题,自己以前居然没有注意过,不过想来确实很奇葩,不晓得是不是谷歌的bug,先记录下再说。
场景是在一个布局里面include了另外一个布局文件,在activity里面通过findViewById找到那个布局(在include的那个布局最外面定义了个id),结果通过匿名内部类的方式添加点击的事件的时候爆了个错误:
看异常的信息描述是说在view类里面没找到onClick方法,刚开始想不明白,后来注意到onClick handler什么的信息,想到是不是用activity实现接口的方法,然后再onClick里面加入点击事件的处理过程,结果试了确实是这样,真是让人摸不着头脑。
下面贴出代码,如果有写的不合理或者不科学的地方还望各位看官指出。
先是主布局文件activity_main.xml:
然后是include的布局: aaa.xml
接下来就是主activity:
所有的代码看起来都简单的正常的不得了,但是运行的时候却出现了文章最开始展示的异常信息,真是好奇怪的问题。
备注:测试环境是eclipse adt + android 4.0.3 android 5.0