summaryrefslogtreecommitdiffstats
path: root/Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2014-02-13 22:15:10 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2016-11-10 17:40:55 +0100
commitaa33f187990a0858de0252c96a695d984ba9b924 (patch)
tree91af28db188e57b41e7e8df19df95d6a0fe82392 /Android/04-TheFragmentClass/FragmentsLab/src/course/labs/fragmentslab/FriendsFragment.java
parentf14e5dbbdf84a5bc068e3a1cfd104e876dd6da61 (diff)
downloadcoursera-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.java75
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;
+ }
+}