Je pensais que les appels à un fragment étaient synchrones, mais ce n'est pas le cas. J'ai un fragment 1 qui contient une listview que je mets à jour via un adaptateur. Ensuite, j'ai un bouton qui lance le fragment 2. Frag2 a un effet sur la liste de fragments de frag1 donc j'ai pensé que je pourrais faire comme suit. Mais quand je clique sur le bouton btn1 mon fragment frag2 est lancé et immédiatement après je vois le log.i.Problème de fragment imbriqué - frag1 appelle frag2 qui a un impact sur la listview de frag1
Je voudrais éviter un bouton d'actualisation dans frag1.
Existe-t-il un moyen d'effectuer une action juste après la fin de frag2?
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
context = getActivity().getApplicationContext();
initFindView();
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
FragmentTransaction ft = getFragmentManager().beginTransaction();
Frag2 f2 = new Frag2();
ft.replace(R.id.content_frame, f2);
ft.addToBackStack(null);
ft.commit();
Log.i("TEST","Test - back from tst2");
}
});
}
"Frag2 a un effet sur la liste de fragments de frag1" - Je suppose que cela signifie que les actions prises pendant que Frag2 est affiché changeront les données affichées dans le ListView? Si tel est le cas, vous devriez peut-être utiliser un LoaderManager (comme dans ce [article de blog par Alex J. Lockwood] (http://www.androiddesignpatterns.com/2012/07/understanding-loadermanager.html)) – 0X0nosugar
. Je vais essayer. Merci. – narb