Android Open Source - introToDroid4ed Field Note List Fragment






From Project

Back to project page introToDroid4ed.

License

The source code is released under:

GNU General Public License

If you think the Android project introToDroid4ed listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.introtoandroid.simplefragments;
//  w ww . java  2 s .co  m

import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.app.ListFragment;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class FieldNoteListFragment extends ListFragment implements
    FragmentManager.OnBackStackChangedListener {

  private static final String DEBUG_TAG = "FieldNoteListFragment";
  int mCurPosition = -1;
  boolean mShowTwoFragments;

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

    // Populate our ListView control within the Fragment
    String[] fieldNotes = getResources().getStringArray(
        R.array.fieldnotes_array);
    setListAdapter(new ArrayAdapter<String>(getActivity(),
        android.R.layout.simple_list_item_activated_1, fieldNotes));

    // Check which state we're in
    View detailsFrame = getActivity().findViewById(R.id.fieldentry);
    mShowTwoFragments = detailsFrame != null
        && detailsFrame.getVisibility() == View.VISIBLE;

    if (savedInstanceState != null) {
      mCurPosition = savedInstanceState.getInt("curChoice", 0);
    }

    if (mShowTwoFragments == true || mCurPosition != -1) {
      // Set the initial url to our default blog post, or the last one shown
      viewAnimalInfo(mCurPosition);
    }

    // monitor back stack changes to update list view
    getFragmentManager().addOnBackStackChangedListener(this);

  }

  @Override
  public void onBackStackChanged() {
    // update position
    FieldNoteWebViewFragment details = (FieldNoteWebViewFragment) getFragmentManager()
        .findFragmentById(R.id.fieldentry);
    if (details != null) {
      mCurPosition = details.getShownIndex();
      getListView().setItemChecked(mCurPosition, true);
      
      // if we're in single pane, then we need to switch forward to the viewer
      if (!mShowTwoFragments) {
        viewAnimalInfo(mCurPosition);
      }
    }
  }

  @Override
  public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("curChoice", mCurPosition);
  }

  @Override
  public void onListItemClick(ListView l, View v, int position, long id) {
    viewAnimalInfo(position);
  }

  void viewAnimalInfo(int index) {
    mCurPosition = index;
    if (mShowTwoFragments == true) {
      // Check what fragment is currently shown, replace if needed.
      FieldNoteWebViewFragment details = (FieldNoteWebViewFragment) getFragmentManager()
          .findFragmentById(R.id.fieldentry);
      if (details == null || details.getShownIndex() != index) {

        // Make new fragment to show this selection.
        FieldNoteWebViewFragment newDetails = FieldNoteWebViewFragment
            .newInstance(index);

        // Execute a transaction, replacing any existing fragment
        // with this one inside the frame.
        FragmentManager fm = getFragmentManager();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.fieldentry, newDetails);
        // Add this fragment instance to the back-stack of the Activity
        // so we can backtrack through our field notes
        if (index != -1) {
          String[] fieldNotes = getResources().getStringArray(
              R.array.fieldnotes_array);
          String strBackStackTagName = fieldNotes[index];
          ft.addToBackStack(strBackStackTagName);
        }
        // Fade between Urls
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
        ft.commit();
      }

    } else {
      // Otherwise we need to launch a new activity to display
      // the dialog fragment with selected text.
      Intent intent = new Intent();
      intent.setClass(getActivity(), FieldNoteViewActivity.class);
      intent.putExtra("index", index);
      startActivity(intent);
    }
  }

  @Override
  public void onAttach(Activity activity) {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onAttach()");
    super.onAttach(activity);
  }

  @Override
  public void onCreate(Bundle savedInstanceState) {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onCreate()");
    super.onCreate(savedInstanceState);
  }

  @Override
  public void onDestroy() {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onDestroy()");
    super.onDestroy();
  }

  @Override
  public void onDetach() {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onDetach()");
    super.onDetach();
  }

  @Override
  public void onPause() {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onPause()");
    super.onPause();
  }

  @Override
  public void onResume() {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onResume(): "
        + mCurPosition);
    super.onResume();
  }

  @Override
  public void onStart() {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onStart()");
    super.onStart();
  }

  @Override
  public void onStop() {
    Log.d(DEBUG_TAG, "FRAGMENT LIFECYCLE EVENT: onStop()");
    super.onStop();
  }

}




Java Source Code List

com.introtoandroid.advancedlayouts.AdaptersActivity.java
com.introtoandroid.advancedlayouts.AdvancedLayoutsActivity.java
com.introtoandroid.advancedlayouts.BasicLayoutActivity.java
com.introtoandroid.advancedlayouts.ContactAdapterActivity.java
com.introtoandroid.advancedlayouts.DialogActivity.java
com.introtoandroid.advancedlayouts.GridAdapterSampleActivity.java
com.introtoandroid.advancedlayouts.GridLayoutActivity.java
com.introtoandroid.advancedlayouts.GridListMenuActivity.java
com.introtoandroid.advancedlayouts.ListAdapterSampleActivity.java
com.introtoandroid.advancedlayouts.MenuActivity.java
com.introtoandroid.advancedlayouts.MyListActivity.java
com.introtoandroid.advancedlayouts.StyleSamplesActivity.java
com.introtoandroid.filesoc.FileStreamOfConsciousnessActivity.java
com.introtoandroid.filesoc.ViewLogActivity.java
com.introtoandroid.myfirstandroidapp.MyFirstAndroidAppActivity.java
com.introtoandroid.navigation.FirstChildActivity.java
com.introtoandroid.navigation.ParentActivity.java
com.introtoandroid.navigation.SecondChildActivity.java
com.introtoandroid.navigation.ThirdChildActivity.java
com.introtoandroid.parisview.ParisViewActivity.java
com.introtoandroid.passwordmatcher.PasswordMatcherActivity.java
com.introtoandroid.resourceroundup.ResourceRoundupActivity.java
com.introtoandroid.samelayout.MenuActivity.java
com.introtoandroid.samelayout.ProgrammaticLayoutActivity.java
com.introtoandroid.samelayout.ResourceLayoutActivity.java
com.introtoandroid.samelayout.SameLayoutActivity.java
com.introtoandroid.simpleactionbar.SimpleActionBarActivity.java
com.introtoandroid.simplealtresources.SimpleAltResourcesActivity.java
com.introtoandroid.simplecontacts.SimpleContactsActivity.java
com.introtoandroid.simplecontentprovider.MenuActivity.java
com.introtoandroid.simplecontentprovider.SimpleBookmarks.java
com.introtoandroid.simplecontentprovider.SimpleCallLog.java
com.introtoandroid.simplecontentprovider.SimpleContentProviderMenuActivity.java
com.introtoandroid.simplecontentprovider.SimpleMediaStore.java
com.introtoandroid.simplefiles.SimpleFilesActivity.java
com.introtoandroid.simplefragdialogs.SimpleFragDialogActivity.java
com.introtoandroid.simplefragments.FieldNoteListFragment.java
com.introtoandroid.simplefragments.FieldNoteViewActivity.java
com.introtoandroid.simplefragments.FieldNoteWebViewFragment.java
com.introtoandroid.simplefragments.SimpleFragmentsActivity.java
com.introtoandroid.simplelayout.FrameLayoutActivity.java
com.introtoandroid.simplelayout.GridLayoutActivity.java
com.introtoandroid.simplelayout.LinearLayoutActivity.java
com.introtoandroid.simplelayout.MenuActivity.java
com.introtoandroid.simplelayout.MultipleLayoutActivity.java
com.introtoandroid.simplelayout.RelativeLayoutActivity.java
com.introtoandroid.simplelayout.SimpleLayoutActivity.java
com.introtoandroid.simplelayout.TableLayoutActivity.java
com.introtoandroid.simplemultimedia.AudioActivity.java
com.introtoandroid.simplemultimedia.MenuActivity.java
com.introtoandroid.simplemultimedia.SimpleMultimediaActivity.java
com.introtoandroid.simplemultimedia.StillImageActivity.java
com.introtoandroid.simplemultimedia.VideoPlayActivity.java
com.introtoandroid.simplepreferences.MoreSimplePreferencesActivity.java
com.introtoandroid.simplepreferences.SimplePreferencesActivity.java
com.introtoandroid.simplepreferences.SuperSimplePreferencesActivity.java
com.introtoandroid.simpleresourceview.SimpleResourceViewActivity.java
com.introtoandroid.simplescrolling.BothScrollActivity.java
com.introtoandroid.simplescrolling.HorizontalScrollActivity.java
com.introtoandroid.simplescrolling.MenuActivity.java
com.introtoandroid.simplescrolling.NoScrollActivity.java
com.introtoandroid.simplescrolling.SimpleScrollingActivity.java
com.introtoandroid.simplescrolling.VerticalScrollActivity.java
com.introtoandroid.simpleuserprefs.SimpleUserPrefsActivity.java
com.introtoandroid.supportfragdialog.MyAlertDialogFragment.java
com.introtoandroid.supportfragdialog.SupportFragDialogActivity.java
com.introtoandroid.userprefsheaders.UserPrefsActivity.java
com.introtoandroid.viewsamples.ButtonsActivity.java
com.introtoandroid.viewsamples.ContainersActivity.java
com.introtoandroid.viewsamples.EventsActivity.java
com.introtoandroid.viewsamples.FormsActivity.java
com.introtoandroid.viewsamples.IndicatorsActivity.java
com.introtoandroid.viewsamples.MenuActivity.java
com.introtoandroid.viewsamples.PickersActivity.java
com.introtoandroid.viewsamples.TextDisplayActivity.java
com.introtoandroid.viewsamples.TextInputActivity.java
com.introtoandroid.viewsamples.ViewSampleActivity.java