The ultimate reason is because android:onClick is implemented by looking
for the method on the view's Context, which will (usually) be your
Activity. Views have no concept of fragments, so there is no way for them
to find a method on a fragment or know what fragment they should even be
looking at.
On Mon, May 28, 2012 at 3:43 AM, Mark Murphy mmur...@commonsware.comwrote:
On Mon, May 28, 2012 at 5:51 AM, Ralph Bergmann | the4thFloor.eu
ra...@the4thfloor.eu wrote:
Why the callback method must be in the FragmentActivity class and not in
the Fragment class?
Because android:onClick was added in Android 1.6, well before the
existence of fragments, and we have not invented a time machine that
would let us go back in time and change all pre-Android 3.0 devices to
behave differently.
While the Android Support package can add backports of *new* stuff, it
cannot change the behavior of *existing* stuff that well. Hence, you
have to inherit from FragmentActivity.
Now, I have not examined where exactly the android:onClick wiring
exists in the source code. It is conceivable, though unlikely, that
the right overrides in FragmentActivity could handle this. However,
probably then you will run into corresponding problems once you drop
the fragments backport in late 2013 and go with native-only fragments,
as I am not aware that native fragments handle android:onClick any
differently than does the backport.
I agree that having android:onClick route to the containing Fragment
first would be a nice feature.
Note that there is nothing stopping you (or anyone else) from cooking
up a bit of code that takes ralph:onClick attributes and wires them up
to the containing Fragment.
--
Mark Murphy (a Commons Guy)
http://commonsware.com | http://github.com/commonsguy
http://commonsware.com/blog | http://twitter.com/commonsguy
Android Training...At Your Office: http://commonsware.com/training
--
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--
Dianne Hackborn
Android framework engineer
hack...@android.com
Note: please don't send private questions to me, as I don't have time to
provide private support, and so won't reply to such e-mails. All such
questions should be posted on public forums, where I and others can see and
answer them.
--
You received this message because you are subscribed to the Google
Groups Android Developers group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en