Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2011 The Android Open Source Project
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 
 package android.support.v4.app;
 
Implementation of android.support.v4.view.PagerAdapter that represents each page as a Fragment that is persistently kept in the fragment manager as long as the user can return to the page.
 
 public abstract class FragmentPagerAdapter extends PagerAdapter {
     private static final String TAG = "FragmentPagerAdapter";
     private static final boolean DEBUG = false;
 
     private final FragmentManager mFragmentManager;
     private FragmentTransaction mCurTransaction = null;
     private Fragment mCurrentPrimaryItem = null;
 
     public FragmentPagerAdapter(FragmentManager fm) {
          = fm;
     }

    
Return the Fragment associated with a specified position.
 
     public abstract Fragment getItem(int position);
 
     @Override
     public void startUpdate(View container) {
     }
 
     @Override
     public Object instantiateItem(View containerint position) {
         if ( == null) {
              = .beginTransaction();
         }
 
         // Do we already have this fragment?
         String name = makeFragmentName(container.getId(), position);
         Fragment fragment = .findFragmentByTag(name);
         if (fragment != null) {
             if () Log.v("Attaching item #" + position + ": f=" + fragment);
             .attach(fragment);
         } else {
             fragment = getItem(position);
             if () Log.v("Adding item #" + position + ": f=" + fragment);
             .add(container.getId(), fragment,
                     makeFragmentName(container.getId(), position));
         }
         if (fragment != ) {
             fragment.setMenuVisibility(false);
         }
 
         return fragment;
     }
 
     @Override
     public void destroyItem(View containerint positionObject object) {
         if ( == null) {
              = .beginTransaction();
         }
         if () Log.v("Detaching item #" + position + ": f=" + object
                 + " v=" + ((Fragment)object).getView());
         .detach((Fragment)object);
     }
 
     @Override
     public void setPrimaryItem(View containerint positionObject object) {
         Fragment fragment = (Fragment)object;
         if (fragment != ) {
             if ( != null) {
                 .setMenuVisibility(false);
             }
             if (fragment != null) {
                 fragment.setMenuVisibility(true);
             }
              = fragment;
         }
     }
 
     @Override
    public void finishUpdate(View container) {
        if ( != null) {
            .commitAllowingStateLoss();
             = null;
        }
    }
    @Override
    public boolean isViewFromObject(View viewObject object) {
        return ((Fragment)object).getView() == view;
    }
    @Override
    public Parcelable saveState() {
        return null;
    }
    @Override
    public void restoreState(Parcelable stateClassLoader loader) {
    }
    private static String makeFragmentName(int viewIdint index) {
        return "android:switcher:" + viewId + ":" + index;
    }
New to GrepCode? Check out our FAQ X