- Android (which I've been using extensively recently) 'setListener'
instead of 'addListener' which at first I thought I would find
restrictive, but is actually quite liberating.
I also think setListener() is a better form, where as if one needs
multiple ones, there is room to do so...
A single setListener() method would actually not be sufficient in
Pivot. Each component is pretty much guaranteed to already have one
listener as soon as it is created, since the skin registers for event
notifications when it is installed. Any app-level listeners would be
in addition to that. FWIW, WPF (Silverlight) uses an approach similar
to what we do in Pivot, only it uses an overload of the += and -=
operator to add/remove listeners rather than ListenerList#add() and
remove().
Also, I agree with Noel that weak references are likely to cause more
problems than they would solve.