diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2014-02-13 22:15:10 +0100 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2016-11-10 17:40:55 +0100 |
commit | aa33f187990a0858de0252c96a695d984ba9b924 (patch) | |
tree | 91af28db188e57b41e7e8df19df95d6a0fe82392 /Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java | |
parent | f14e5dbbdf84a5bc068e3a1cfd104e876dd6da61 (diff) | |
download | coursera-aa33f187990a0858de0252c96a695d984ba9b924.zip coursera-aa33f187990a0858de0252c96a695d984ba9b924.tar.gz |
Android : 04-TheFragmentClass: add
Diffstat (limited to 'Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java')
-rw-r--r-- | Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java b/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java new file mode 100644 index 0000000..3d18ee6 --- /dev/null +++ b/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java @@ -0,0 +1,75 @@ +package course.labs.fragmentslab; + +import android.app.Activity; +import android.app.ListFragment; +import android.os.Build; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +public class FriendsFragment extends ListFragment { + + private static final String[] FRIENDS = { "ladygaga", "msrebeccablack", "taylorswift13" }; + private static final String TAG = "Lab-Fragments"; + + public interface SelectionListener { + public void onItemSelected(int position); + } + + private SelectionListener mCallback; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // use different layout definition, depending on whether device is pre- + // or post-honeycomb + int layout = Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB ? android.R.layout.simple_list_item_activated_1 : android.R.layout.simple_list_item_1; + // Set the list adapter for this ListFragment + setListAdapter(new ArrayAdapter<String>(getActivity(), layout, FRIENDS)); + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + // Make sure that the hosting Activity has implemented + // the SelectionListener callback interface. We need this + // because when an item in this ListFragment is selected, + // the hosting Activity's onItemSelected() method will be called. + try { + mCallback = (SelectionListener) activity; + + } catch (ClassCastException e) { + throw new ClassCastException(activity.toString() + " must implement SelectionListener"); + } + } + + // Note: ListFragments come with a default onCreateView() method. + // For other Fragments you'll normally implement this method. + // @Override + // public View onCreateView(LayoutInflater inflater, ViewGroup container, + // Bundle savedInstanceState) + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + Log.i(TAG, "Entered onActivityCreated()"); + // When using two-pane layout, configure the ListView to highlight the + // selected list item + if (isInTwoPaneMode()) { + getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE); + } + } + + @Override + public void onListItemClick(ListView l, View view, int position, long id) { + // Notify the hosting Activity that a selection has been made. + mCallback.onItemSelected(position); + } + + // If there is a FeedFragment, then the layout is two-pane + private boolean isInTwoPaneMode() { + return getFragmentManager().findFragmentById(R.id.feed_frag) != null; + } +} |