2012-12-19 2 views
2

J'ai quatre Fragments A B C D.Quand j'effectue un saut de A à B et de B à C et de C à D. Comment puis-je obtenir le résultat de D à B quand j'appuie sur la touche retour?Comment puis-je faire avec android Fragment backstack?

+0

http://stackoverflow.com/a/5984892/1160282 Cochez cette case – SilentKiller

+0

Voulez-vous envoyer des informations à B à partir de D ou voulez-vous simplement afficher B? –

Répondre

1

FragmentD:

Créer une interface FragmentD.

OnBackListener mback; 
    public interface OnBackListener { 
     public void onBackClicked(); 
} 

@Override 
    public void onAttach(Activity activity) { 
     try { 
      mback = (OnBackListener) activity; 
     } catch (ClassCastException e) { 
      throw new ClassCastException(activity.toString() 
        + " must implement OnBackListener"); 
     } 
     super.onAttach(activity); 
    } 


public void methodCall() 
    { 
     mback.onBackClicked() 
    } 

puis

Activité parent

implémentent l'interface OnBackListener que nous avons créé dans FragmentD.

public class MyActivity extends FragmentActivity implements OnBackListener { 


// overriding OnBackListener interface method 
     @Override 
      public void onBackClicked() { 

        //calling fragmentb 
      } 

    //Backkey event 
     @Override 
     public void onBackPressed() 
     { 
      super.onBackPressed(); 
      fragmentd.methodCall(); 
     } 

     } 

En passant, vous obtiendrez le résultat de fragmentD à fragmentB.

+0

Je veux utiliser la touche de retour pour effectuer un saut de D à B, mais la touche de retour a été contrôlée par FragmentActivity.So l'appel d'interface onBackClicked() ne sera pas fait. – beiliubei

+0

Modifié le code ci-dessus. J'espère que cela fonctionnera. – Androider

+0

Bonjour Androider, y a-t-il un moyen plus facile si je veux le résultat de D à C quand j'appuie sur la touche retour? –

Questions connexes