| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 
 | public class MyPagerAdapter extends FragmentStatePagerAdapter {
 
  private final List fragments;
	private final String path;
		private static final String TAG = "FragmentPagerAdapter";
		private static final boolean DEBUG = true;
		private final FragmentManager mFragmentManager;
		private FragmentTransaction mCurTransaction = null;
		private Fragment mCurrentPrimaryItem = null;
		private Context mContext = null;
 
  //On fournit à l'adapter la liste des fragments à afficher
 public MyPagerAdapter(FragmentManager fm, List fragments, String path, Context context) {
   super(fm);
		mContext = context;
		mFragmentManager = fm;
		this.path = path;
		this.fragments = fragments;
  }
 
  @Override
  public Fragment getItem(int position) {
		Fragment frg;
		Bundle data;
		switch(position){
			case 0 :
				data = new Bundle();
				data.putString("path", path);
				frg = new fragment1();
				frg.setArguments(data);
				return frg;
			case 1 :
				 data = new Bundle();
				data.putString("path",path);
				frg = new fragment2();
				frg.setArguments(data);
				return frg;
			case 2 :
				data = new Bundle();
				data.putString("path",path);
				frg = new fragment3();
				frg.setArguments(data);
				return frg;
			case 3 :
				data = new Bundle();
				data.putString("path",path);
				frg = new fragment4();
				frg.setArguments(data);
				return frg;
			case 4 :
				data = new Bundle();
				data.putString("path",path);
				frg = new fragment5();
				frg.setArguments(data);
				return frg;
		}
		return null;
  }
 
	@Override
	public void setPrimaryItem(ViewGroup container, int position, Object object) {
		Fragment fragment = (Fragment)object;
		if (fragment != mCurrentPrimaryItem) {
			if (mCurrentPrimaryItem != null) {
				mCurrentPrimaryItem.setMenuVisibility(false);
			}
			if (fragment != null) {
				fragment.setMenuVisibility(true);
			}
			mCurrentPrimaryItem = fragment;
		}
	}
	@Override
	public Object instantiateItem(ViewGroup container, int position){
		if (mCurTransaction == null) {
			mCurTransaction = mFragmentManager.beginTransaction();
		}
 
		// Do we already have this fragment?
		String name = makeFragmentName(container.getId(), position);
		Fragment fragment = mFragmentManager.findFragmentByTag(name);
		if (fragment != null) {
			if (DEBUG) Log.e(TAG, "Attaching item #" + position + ": f=" + fragment + "name :" +name);
			mCurTransaction.attach(fragment);
		} else {
			fragment = getItem(position);
			if (DEBUG) Log.e(TAG, "Adding item #" + position + ": f=" + fragment +"name :" +name);
				mCurTransaction.add(container.getId(), fragment,
					makeFragmentName(container.getId(), position));
		}
		if (fragment != mCurrentPrimaryItem) {
			fragment.setMenuVisibility(false);
		}
 
		return fragment;
	}
	public int getItemPosition(Object object) {
		return POSITION_NONE;
	}
  @Override
  public int getCount() {
    return 5;
  }
 
  public CharSequence getPageTitle(int position, Context context) {
    String[] name_activity = context.getResources().getStringArray(R.array.SubMenu);
    return name_activity[position];
  }
 
	@Override
	public void finishUpdate(ViewGroup container) {
		if (mCurTransaction != null) {
			mCurTransaction.commitAllowingStateLoss();
			mCurTransaction = null;
			mFragmentManager.executePendingTransactions();
		}
	}
	@Override
	public void destroyItem(ViewGroup container, int position, Object object) {
		if (mCurTransaction == null) {
			mCurTransaction = mFragmentManager.beginTransaction();
		}
		if (DEBUG) Log.e(TAG, "Detaching item #" + position + ": f=" + object + " v=" + ((Fragment) object).getView());
		mCurTransaction.remove((Fragment) object);
 
	}
	@Override
	public boolean isViewFromObject(View view, Object object) {
		return ((Fragment)object).getView() == view;
	}
 
	@Override
	public Parcelable saveState() {
		return null;
	}
 
	@Override
	public void restoreState(Parcelable state, ClassLoader loader) {
	}
 
	public void startUpdate(ViewGroup container) {
 
	}
	private static String makeFragmentName(int viewId, int index) {
		return "android:switcher:" + viewId + ":" + index;
	}
} | 
Partager