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.

  • Barre de défilement rapide de liste personnalisée dans Android
  • Affichez deux vidéos ensemble puis sortez comme une vidéo fusionnée sur un seul écran
  • Comment définir la mise au point sur un TextView lorsqu'une activité démarre?
  • Impossible d'exécuter le projet importé
  • Comment puis-je mettre à l'échelle un bitmap en direct sans lire l'image entière d'abord?
  • Impossible de supprimer AVD de AVD Manager dans Android Studio
  • 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.

  • WebView charge le site Web en ligne, charge le fichier local lorsqu'il est hors connexion
  • Comment savoir si «Mobile Network Data» est activé ou désactivé (même s'il est connecté par WiFi)?
  • Des outils ORM bons pour le développement d'Android?
  • Erreur: Jack est requis pour prendre en charge les fonctionnalités Java Java
  • Android Studio: "libpng warning: iCCP: ne reconnaissant pas le profil sRGB connu qui a été édité"
  • Alternative à dex2jar et jd-GUI?
  • 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.