Partage
  • Partager sur Facebook
  • Partager sur Twitter

android passage Intent dans plusieurs activités

passage photos entre plusieurs (au moins 3) activités

    15 janvier 2021 à 12:13:54

    Bonjour,

    Débutant en java android, je me suis lancé (avec l'aide des cous et de tutos) dans la création d'une appli Android.

    Dans cette appli, ma première "activity" est une ListView qui présente une galerie de 10 photos.

    Quand je clique sur une photo (Item) cela ouvre une deuxième activity qui affiche la photo choisie

    Bundle mBundle = getIntent().getExtras();
    if (mBundle != null) {
    mImageView.setImageResource(mBundle.getInt("countryFlag"));
    }

    (ça fonctionne très bien) et qui propose 2 boutons. Un bouton "Retour" qui permet de revenir dans la première activity pour changer de photo (ça fonctionne très bien) et un bouton "OK" qui ouvre une troisième activity qui doit également afficher la photo choisie.

    L'ouverture de la troisième activity fonctionne parfaitement mais je n'arrive pas à afficher la photo (récupérer l'Intent ?).

    Est-ce quelqu'un pourrait m'aider à débloquer le problème ? Merci.

    -
    Edité par michelsara 15 janvier 2021 à 16:07:33

    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2021 à 12:16:43

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Besoin aide appli android)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        16 janvier 2021 à 8:21:40

        C’est également un doublon...

        https://www.tutorialspoint.com/What-are-class-variables-instance-variables-and-local-variables-in-Java

        Dans le premier extrait de code tu as une variable myVaria le. Imagique que cette variable est ton Drawable. Tu le set quand tu recuperes l’intent et tu le get quand tu crées le nouveau. 

        • Partager sur Facebook
        • Partager sur Twitter
          17 janvier 2021 à 17:30:38

          Merci Geda pour ton soutien, mais je pense que j'ai entrepris un chantier trop pointu pour moi.

          Je vais laisser tomber pour l'instant car je ne comprends plus ce qu'il faut faire.

          je vais reprendre les cours et les tutos pour avancer un peu plus dans la connaissance de java android, et je m'y remettrai plus tard.

          Merci encore

          • Partager sur Facebook
          • Partager sur Twitter
            17 janvier 2021 à 18:59:25

            En fait c’est relativement simple. Quand tu déclares une variable dans une fonction tu n’y as accès que dans cette fonction. Elle n’est pas visible par les autres. 

            si tu mets une variable  dans ta classe tu y auras accès dans toutes tes fonctions. Car le scope est plus large

            Cest une histoire d’ensemble. 

            -
            Edité par Geda 17 janvier 2021 à 18:59:57

            • Partager sur Facebook
            • Partager sur Twitter
              7 février 2021 à 17:45:52

              Bonjour,

              J'avance péniblement dans la connaissace de Java android.

              Si quelqu'un pouvait m'aider à résoudre mon problème, cela me motiverait et m'inciterait à poursuivre mon apprentissage.

              Dans ma première activité, ma variable est créée dans la classe:

              public class MainActivity extends AppCompatActivity {

              Toolbar mToolbar;
              ListView mListView;


              String[] countryNames ={"Sélectionnez un copain", "Babeth", "Béa", "Francoise", "Isabelle", "JP", "Marie", "Martine", "Michel", "PatrickG", "PatrickS", "Thierry"};
              int[] countryFlags = {
              R.drawable.icone_risu_selection,
              R.drawable.babeth,
              R.drawable.bea,
              R.drawable.francoise,
              R.drawable.isabelle,
              R.drawable.jp,
              R.drawable.marie,
              R.drawable.martine,
              R.drawable.michel,
              R.drawable.patrickg,
              R.drawable.patricks,
              R.drawable.thierry};

              je la récupère dans un Intent pour la passer dans la deuxième activité:

              public void onItemClick( AdapterView<?> adapterView, View view, int i, long l) {
              Toast.makeText(MainActivity.this, countryNames[i] + " est un excellent choix !", Toast.LENGTH_LONG).show();
              Intent mIntent = new Intent(MainActivity.this, DetailActivity.class);
              mIntent.putExtra("countryFlag", countryFlags[i]);
              startActivity(mIntent);

              Dans la deuxième activité, je la récupère et elle s'affiche parfaitement:

              mImageView = (ImageView) findViewById(R.id.imageView2);

              Bundle mBundle = getIntent().getExtras();
              if (mBundle != null) {
              mImageView.setImageResource(mBundle.getInt("countryFlag"));
              }

              Et dans cette deuxième activité il y a un bouton avec un onClick (okCopain) avec lequel je voudrais passer cette même variable dans une troisième activité.

              public void okCopain( View view) {

              Intent mInt = new Intent(this, ChoixAnimal.class);
              //Intent mInt = new Intent(DetailActivity.this, ChoixAnimal.class);
              //mInt.putExtra("copain", mImageView.equals("countryFlag"));
              mInt.putExtra("copain", "countryFlag");
              startActivity(mInt);

              dans cette troisième activité je récupère cet Intent comme ceci:

              mNewImageView = (ImageView) findViewById(R.id.imageView9);


              Bundle extras = this.getIntent().getExtras();
              if ( extras != null){
              mNewImageView.setImageResource(extras.getInt("copain"));
              }

              La troisième activité s'ouvre bien mais rien ne s'affiche !!!

              Là, c'est trop fort pour moi !!Je tourne en rond.

              Si vous pouviez me débloquer ce passage là, cela m'inciterait vraiment à poursuivre.

              -
              Edité par michelsara 7 février 2021 à 18:26:25

              • Partager sur Facebook
              • Partager sur Twitter
                10 février 2021 à 20:43:09

                C’est illisible mon ami :)
                • Partager sur Facebook
                • Partager sur Twitter
                  10 février 2021 à 21:15:12

                  Désolé , j'avais essayé d'expliquer dans le premier message et là, j'ai voulu mettre des explications plus "techniques" mais visiblement c'est nul !

                  Donc, je ne sais pas comment faire !

                  • Partager sur Facebook
                  • Partager sur Twitter
                    11 février 2021 à 13:28:22

                    Bah c’est bien. Mais j’imagine que lorsque tu codes Tu n’écris pas tout sur une seule ligne. C’est pareil pour la lecture, fais des retours à la ligne
                    • Partager sur Facebook
                    • Partager sur Twitter
                      11 février 2021 à 17:39:52

                      Ah, ok, en faisant ma réponse je me rends compte du problème ! Tout se met à la suite (mon texte + les copies-écran) ! Pourtant, lors de mon premier message la mise en page était OK ?

                      -
                      Edité par michelsara 11 février 2021 à 17:50:44

                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 février 2021 à 23:29:10

                        ¯\_(ツ)_/¯

                        -
                        Edité par Geda 11 février 2021 à 23:29:38

                        • Partager sur Facebook
                        • Partager sur Twitter

                        android passage Intent dans plusieurs activités

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        • Editeur
                        • Markdown