Salut,

J'ai une petite question pour vous.

J'ai actuellement une ViewPager qui contient 5 fragments

J'ai donc le problème suivant,

Je suis sur la page 0, qui contient un certain nombre d'information, et qui va modifier un fichier.

Lorsque je suis sur la page 1, je souhaiterai que la modification soit pris en compte. (Cela n'est pas prit en compte).

Lorsque je suis sur la page 2 => je souhaiterai prendre en compte les modification du fichier de la page 1.



Aujourd'hui pour voir la modification sur la page 2, il faut que j'aille sur la page 0.



Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
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;
	}
}


Voici le code de l'adapter que j'ai.

Je n'ai pas logcat a fournir car l'application ne crash pas, il n'y a pas de rafraichissement.