我问这个有点因为我很感兴趣,主要是因为我害怕使用我不理解的属性\代码。根据我的理解,通过实现适合于事件的侦听器接口,java工作中的所有事件。如果我在我的活动中为2个按钮实现onClick并且第三个使用android:onClick =“...”属性定义一个方法会发生什么?我找到了这个article,所以在阅读之后我明白它可以使用一个实现OnClickListener的匿名类来实现, 但我想确定\更多地了解它,以及以什么方式可能会破坏某些东西\将这些知识用于我的优势? android reference不清楚它是如何工作的,
答案 0 :(得分:8)
它使用反射来确定在运行时调用的方法。它是视图的属性,因此View具有相关代码,该代码查看是否设置了此属性,然后找出活动上的方法名称并触发它。
视图始终绑定到特定活动的上下文,因此,可以通过反射调用此公共方法。
您可以在此处查看视图类的源代码。您可以看到正在处理此情况的行号2003。
答案 1 :(得分:1)
要以更简单的方式回答您的问题,您在此处指定的名称是加载该布局的Activity中的公共方法。该方法必须采用View类型的单一论证。
如:
android:onClick="myMethod"
public void myMethod(View view) {
}