Summary
Android uses several different mechanisms when delivering events within its applications, each one tailored to the type of event being delivered and the intended recipient of the event. Most user-interface events are delivered to a single listener registered to each widget, but that doesn't stop the same listener from handling multiple event types from different widgets. This sort of design will reduce the load on the system and the amount of memory used, and will often help in producing more reusable code.
Event handlers are often written badly and become anonymous inner classes that, while starting life as a simple delegate to another method, eventually become bloated and unmaintainable blocks of code. It's often better to isolate the event handlers from their environment from the beginning as this encourages them to be reused, and makes them easier to test and maintain. Some event handler classes (such as DatePickerWrapper
) handle different types of events in a way that is related...