0

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"); 

     } 
    }); 

} 
+0

"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

+0

. Je vais essayer. Merci. – narb

Répondre

1

votre question, vous regardez seulement besoin du résultat, vous pouvez y arriver cuvette startActivity (ForResult) ou avec des fragments ResultReceiver creux qui est un Parcelable que vous pouvez utiliser comme argument, et attendre le résultat mettre à jour votre Frag1.

+0

J'avais à tort l'impression que vous ne pouviez pas démarrer une activité à partir d'un fragment. Merci. – narb