Android: Accès à l'objet d'activité du conteneur à partir du fragment à l'aide de putExtra?

Je construis une interface de tabulation en utilisant la barre d'action et le fragment. J'aurais besoin d'aide pour envoyer des données de l'activité du conteneur vers le fragment.

Pour élaborer, j'ai un objet de travail dans le conteneur activty. Et j'ai créé quelques onglets basés sur l'information dans l'objet de travail (comme les détails de l'entreprise, les détails de l'expérience, etc.). Je dois passer l'objet de travail à ces fragments afin qu'il puisse afficher les informations respectives.

  • Android auto-logout lorsque l'application va à l'arrière-plan
  • Android: adb: Autorisation refusée
  • Vue Android et ViewGroup
  • Mockito + Dexmaker sur Android
  • Changer le nom du périphérique Bluetooth Android
  • La couverture globale de Sonarqube ne correspond pas à la couverture du rapport jacacho
  • J'ai créé une activité de conteneur et des fragments d'onglets. J'aurais besoin d'un exemple sur la façon de passer l'objet à travers eux. Je ne peux pas utiliser intention.putExtra. Puis-je accéder à l'objet du conteneur parent à partir d'un fragment?

    Toute aide sera appréciée.

    Merci.

  • Avantage d'utiliser Single TableLayout au lieu de multiples LinearLayouts car TableRow étend LinearLayout uniquement
  • Comment utiliser DataItem of Android Wear
  • Convertir XML en objet JSON dans Android
  • Camera.takePicture () ne travaille pas sur mes téléphones JB & GB & Froyo
  • Comment annuler les styles d'une bibliothèque ayant sa propre activité
  • XML unique, activité multiple et performance
  • 2 Solutions collect form web for “Android: Accès à l'objet d'activité du conteneur à partir du fragment à l'aide de putExtra?”

    Créez la méthode dans votre activité, par exemple getJob qui renverra l'objet Job et son information

     MyActivity extends Activity{ Job mJob; public Job getJob(){ return this.mJob; } } 

    Alors dans votre fragment vous faites ceci:

     MyFragment extends Fragment{ @Override public void onActivityCreated(){ super.onActivityCreated(); ((MyActivity)this.getActivity()).getJob(); } } 

    Utilisez getActivity et la méthode getJob(); Pour obtenir l'objet

    Il existe plusieurs façons d'y parvenir.

    1. Créez une variable static pour contenir vos données et accéder à ces données à l'intérieur des fragments – c'est le plus rapide, mais cela crée de mauvais modèles de conception s'il est utilisé de manière incorrecte.
    2. Un moyen de Fragment-to-Fragment communication possible through the parent Activity est affiché ici: http://developer.android.com/training/basics/fragments/communicating.html Vous pouvez utiliser l'exemple de code pour simplement faire une Activity - Fragment data send .
    3. La meilleure réponse votée ici: Accès à l'instance de l'activité parent? Mentionne a way to avoid using static data (1.) et contient des exemples de code source en utilisant ActivityGroup

    "Si vous avez besoin d'accéder à certaines valeurs dans votre première activité sans y faire de référence, vous pourriez envisager de mettre vos activités dans un groupe d'activités".

    Ce que vous choisissez, c'est votre préférence, ce ne sont que quelques options!


    Edit: Je ne sais pas si le numéro 3 fonctionnera avec des fragments puisque je n'ai pas testé une méthode similaire à celle-ci, l'exemple est Activité – Communication d'activité.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.