Académique Documents
Professionnel Documents
Culture Documents
Development
FragmentActivity
Introduction
Creating a dynamic and multi-pane user
interface on Android, need to encapsulate
UI components and activity behaviors into
modules that you can swap into and out of
your activities.
Fragment class can be used to create these
modules, which behaves somewhat like a
nested activity that can define its own layout
and manage its own lifecycle.
It represents a behavior or a portion of user
interface in an Activity.
2
Introduction
Developer can combine multiple fragments
in a single activity to build a multi-pane UI
and reuse a fragment in multiple activities.
Fragment can be considered as a modular
section of an activity, which has its own
lifecycle, receives its own input events
Fragment can be added or removed while
the activity is running
Fragment introduced primarily to support
more dynamic and flexible UI designs on
large screens, such as tablets.
3
Introduction
android.support.v4.app.Fragment;
android.support.v4.app.FragmentManager;
5
Using Fragments
The main activity must extends the
FragmentActivity class
The main activitys layout should has a space,
ViewGroup, to display the fragments
If there is more than one fragment appropriate way
must be used to call these fragments
The fragment
Fragment class
activity
must
extends
the
Using Fragments
In the MainActivity, do the following steps:
Create a FragmentManager fmgr"
returned by
getSupportFragmentManager()
Create a FragmentTransaction ftrans
returned by fmgr. beginTransaction();
Add fragment object to FragmentTransaction
ftrans.add(R.id.fragContainer, FragObj);
Commit the FragmentTransaction to start the
fragment.
ftrans.commit();
Using Fragments
public class MainActivity extends
MainActivity
FragmentActivity {
<LinearLayout >
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp">
<Button
android:id="@+id/btnFrag00"
android:text="Frag 00"
android:onClick="selectFragmen
t"
/>
</LinearLayout>
<!-- the fragment container -->
<LinearLayout
android:id="@+id/fragContainer"
@Override
protected void onCreate(Bundle
savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragmentManager fmgr =
getSupportFragmentManager();
FragmentTransaction ftrans =
fmgr.beginTransaction();
StartFragment startFrag = new
StartFragment();
ftrans.add(R.id.fragContainer,
startFrag);
ftrans.commit();
}
8
//handling fragments switching
by using
Using Fragments
fragmentActivity
<LinearLayout
android:layout_height=""
android:layout_width="...
android:orientation="" >
< TextView
android:id="@+id/txtV"
android:text="Frag 00"
android:onClick="selectFragment"
/>
</LinearLayout>
getListAdapter().getItem(position);
DetailFrag frag = (DetailFrag)
12
Assignment
How to get/pass data from/to the fragment.
13