Android Xml属性android:onClick ="..."如何在幕后工作?

Eyt*_*tan 4 java xml android

我问这个有点因为我很感兴趣,主要是因为我害怕使用我不理解的属性\代码.根据我的理解,通过实现适合于事件的侦听器接口,java工作中的所有事件.如果我在我的活动中为2个按钮实现onClick并且第三个使用android:onClick ="..."属性定义一个方法会发生什么?我找到了这篇文章,所以在阅读之后我明白它可以使用一个实现OnClickListener的匿名类来实现,但是我想确定\更多地了解它,以及我可能以什么方式破坏某些东西\使用这些知识我的advantege?android 引用不清楚它是如何工作的,

Kum*_*bek 8

它使用反射来确定在运行时调用的方法.它是视图的属性,因此View具有相关代码,该代码查看是否设置了此属性,然后找出活动上的方法名称并触发它.

视图始终绑定到特定活动的上下文,因此,可以通过反射调用此公共方法.

您可以在此处查看视图类的源代码.您可以看到正在处理此情况的第2003行.

View类的源代码

  • 反射很慢,不允许编译时间检查. (2认同)