A
fragment is a portion of an Activity's user interface.
Multiple fragments can be put into the UI, along with "regular" UI
elements.
Fragments have both UI elements and code - kinda "subactivities".
They have regular lifecycles.
Fragments can be reused by multiple activities in an app.
Activities can access fragments by id, and hence call methods in
fragments.
Fragments can define interfaces for the host activities to implement,
so the fragment can call the interface methods.
Clicks on fragment UI elements can be handled by the host
activity if set in the UI definition, or by the fragment if set as
the handler in the fragment.
Changes to fragments can be stacked as transactions, and unstacked
to return to previous fragment states (but I havn't played with that
yet).