Professional Documents
Culture Documents
Development
Android Platform
Topic:
Working with Fragments
Dr. Uzair Ahmad
Department of Computer Science
National Textile University
Pakistan
Resources
getStringArray()
FragmentManager
findFragmentByID()
ListFragment
getActivity()
onAttach(Activity activity)
getListView()
setListAdapter( ArrayAdapter<?>)
ListAdapter, ArrayAdapter<?>
3. MainActivity
4. ContactsFragment
ContactsFragment extends ListFragment
5. DetailsFragment
DetailsFragment extends Fragment
My Contacts App
MainActivity.ja
va
Activity_main.x
ml
ContactsFragment.j
ava
Text_view.xml
ContactDetailsFragment.
java
contact_details_layout.xm
l
mContactsArray, mDetailsArray;
ContactsFragment
1. Create a ContactsFragment class
i.
ii.
ListSelectionInterface mListener;
ContactFragment
mListener
ListSelectionInterf
ace
ContactsFragment
ContactFragment
mListener
ListSelectionInterf
ace
MainActivity
1. Open the MainActivity java file
i.
ii.
ListSelectionInterf
ace
implements
MyMainActivity
mContactsAr
ray
mDetailsArra
y
ContactFragment
mListener
ListSelectionInterf
ace
ContactDetailsFragment
1. Create a ContactDetailsFragment
class
DetailsFragment
mArrayLen
mCurrIdx
mContactDet
ailView
Compose ContactDetailsFragment
into MyMainActivity
1. Open the MyMainActivity java file
i.
ContactDetailsFragment
mDetailsFragment;
Compose ContactDetailsFragment
into MyMainActivity
ListSelectionInterf
ace
implements
MyMainActivity
mDetailsFragme
nt
DetailsFragment
mArrayLen
mCurrIdx
mContactDet
ailView
mContactsAr
ray
mDetailsArra
y
ContactFragment
mInterface
ListSelectionInterf
ace
Populate
ContactFragment with
Contacts
ListAdapter
Bridge between
a ListView and the Data
ArrayAdapter
ArrayAdapter<String>(
getActivity(), Context
R.layout.textview_layout,
int resource id
MainActivity.mContactsArray
Array of Objects
)
Implement onListItemClick(..)
method
getListView().setItemChecked(position,
true);
mListSelectionInterface.onListItemSelected(
position);
Add showContactDetails() to
DetailsFragment
1. Open the DetailsFragment java file
i.
Implement onListItemSelected() in
MainActivity
onListItemSelected(int index){
??
My Contacts App
MainActivity.ja
va
Activity_main.x
ml
ContactsFragment.j
ava
Text_view.xml
ContactDetailsFragment.
java
contact_details_layout.xm
l
ContactsFragment
MainActivity
mDetailsFragm
ent
onCreate(){
setContentView(activity_main);
}
onAttach(){}
onCreate(){}
onCreateView()
{}
onActivityCreate
d(){}
ContactDetailsFragment
mContactsAr
ray
mDetailsArra
y
mCurrIdx
mArrayLen
mContactDet
ailView
ListSelectionListen
er
FragmentL
ist
Activit
y
ContactsFragment
MainActivity
mDetailsFragm
ent
onCreate(){
setContentView(activity_main);
mDetailsFragment= FragmentManager.
}
mContactsAr
ray
mDetailsArra
y
onAttach(){}
onCreate(){}
onCreateView()
{}
onActivityCreate
d(){}
Fragmen
t
ContactDetailsFragment
mContactDet
ailView
mCurrIdx
mArrayLen
FragmentList
ContactsFragme
nt
Interface
ListSelectionListener {onListSelection();}
ListSelectionListen
er
ListSelectionListener
mListener
Activity
onAttach(){}
onCreate(){}
onCreateView(){}
onActivityCreated()
{}
MainActivity
mDetailsFragm
ent
onCreate(){
setContentView(activity_main);
mDetailsFragment= FragmentManager.
}
mListener = (ListSelectionListener)
activity;
super.onCreate(sta
te);
inflater.inflate(R.layout.contact_details_layout,
container, false);
setListAdapter(new
ArrayAdapter<String>(getActivity(),
R.layout.text_view,
MainActivity.contactsArray));
onListSelection(){}
if (mDetailsFragment.getShownIndex() !=
index) {
mDetailsFragment.showContactAtIndex(index);
}
Fragment
ContactDetailsFragme
nt
ListSelectionListen
er
Activity
mArrayLen mCurrIdx
mContactDet
ailView
onActivityCreated()
{}
MainActivity
mDetailsFragm
ent
onCreate(){
setContentView(activity_main);
mDetailsFragment= FragmentManager.
}
onListSelection(int
index){}
super.onActivityCreated(savedInstanceState);
mContactDetailView = (TextView)
getActivity().findViewById(R.id.textView);
mArrayLen = MainActivity.contactsArray.length;
showContactAtInde
x(i){}
mContactDetailView.setText(MainActivity.contactDetailsArra
y[mCurrIdx]);
getShownIndex(i){}
return mCurrIdx;
if (mDetailsFragment.getShownIndex() !=
index) {
mDetailsFragment.showContactAtIndex(index);
}
FragmentList
ListSelectionListen
er
Activity
ContactsFragme
nt
ListSelectionListener
mListener
onAttach(){}
onCreate(){}
MainActivity
mDetailsFragm
ent
onCreateView(){}
onActivityCreated()
{}
onCreate(){
setContentView(activity_main);
mDetailsFragment= FragmentManager.
}
Interface
ListSelectionListener
mListener = (ListSelectionListener)
activity;
super.onCreate(sta
te);
inflater.inflate(R.layout.contact_details_layout,
container, false);
setListAdapter(new
ArrayAdapter<String>(getActivity(),
R.layout.text_view,
MainActivity.contactsArray));
Fragment
super.onAttach(activity
);
ContactDetailsFragme
nt mContactDetailView;
mQuoteArrayLen;
super.onCreate(sta
te);
onAttach(){}
onCreate(){}
onCreateView(){}
onActivityCreated()
{}
return
inflater.inflate(R.layout.contact_details_layout,
container, false);
super.onActivityCreated(savedInstanceState);
mContactDetailView = (TextView)
getActivity().findViewById(R.id.textView);
mQuoteArrayLen = MainActivity.contactsArray.length;