I'm asking this a little because im intrested and mostly because im afraid to use properties\code that I don't understand. From what I understand all events in java work by implementing a listener inteface thats appropriate to the event. What will happen if I implement onClick in my activity for 2 buttons and for the third define a method with the android:onClick="..." property? I found this article, so after reading it I understand that its probebly implemented using a anonymous class that implements the OnClickListener, but I'd like to be sure\know more about it, and in what way I might break something\ use this knowledge to my advantege? the android reference isn't clear about how it works,,,
It uses reflection to figure out the method to call at runtime. It's a view's property, so the View has the relevant code which looks if this property is set, and then figure out the method name on the activity and triggers it.
View is always bound to a specific activity's context, and so, is able to call this public method through reflection.
You can see the source code of the view class here. You can see line number 2003, where this situation is being handled.
Source code for View class
To answer your question in a simpler manner, the name you specify here is a public method in the Activity that loaded that layout. That method must take a single arguement of type View.
Such as:
android:onClick="myMethod"
public void myMethod(View view) {
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With