Aller au contenu

Récupérer le bouton


axool

Recommended Posts

Bonjour,

J'ai une application et pour réaliser un programme plus modulaire, j'ai besoin de votre aide.

Voici donc un bout du code avec des explications pour que vous compreniez où je souhaite en venir :


           if(bouton == newGame || bouton == continueGame)
           {
               Intent intent = new Intent(MainActivity.this, Jeu.class);
               startActivity(intent);
           }

... comme vous pouvez le voir, les 2 boutons renvoient vers la même classe ...

Et dans la classe justement, je souhaiterai faire ceci :

/* class Jeu */
if( "le bouton newGame est cliqué" )
{
   // On commence du niveau 1
   niveau = 1;
} else {
   // On commence à partir du niveau sauvegardé
   niveau = preferences.getInt("niveau", 0);
}

je voudrai donc récupérer le nom du bouton qui est cliqué dans la classe Jeu ...

Si vous savez comment faire, n'hésitez pas ;) .

Merci d'avance !

Lien vers le commentaire
Partager sur d’autres sites

Bonjour

Il suffit de passer à l'Intent le nom du bouton sur lequel tu as cliqué en faisant par exemple ceci :

            if(bouton == newGame || bouton == continueGame)
           {
               Intent intent = new Intent(MainActivity.this, Jeu.class);
           	intent.putExtra("param",nom_du_bouton);
               startActivity(intent);
           }

Et dans la classe appelé récupérer le paramètre de cette façon dans le constructeur :

   	String name = "";
       Bundle extras = getIntent().getExtras();
       if (extras != null)
           name = extras.getString("param");

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse. Malheureusement, après avoir appliqué ce code, l'application quitte lorsque je clique sur le bouton continueGame.

Voici le code que j'ai appliqué :


       public void onClick(View bouton)
       {
           Intent intent = new Intent(MainActivity.this, Jeu.class);
           if(bouton == newGame)
           {
               intent.putExtra("newGame", "newGame");
           } else if(bouton == continueGame) {
               if(preferences.getInt("niveau", 0) == 0)
               {
                   finish();
               } else {
                   intent.putExtra("continueGame", "continueGame");
               }
           }

           startActivity(intent);
       }

... et dans la classe cible ...


           preferences                 = PreferenceManager.getDefaultSharedPreferences(this);
           Bundle extras = getIntent().getExtras();
           if (extras != null)
           {
               // Nouveau jeu
               if(extras.getString("newGame").equals("newGame"))
                   niveau = 1;
               else
                   niveau = preferences.getInt("niveau", 0);
           }

Avez-vous une idée d'où pourrait venir le problème ?

Lien vers le commentaire
Partager sur d’autres sites

Merci mais ... Je fais comment pour "mettre un debug" ?

Si je compile et que je choisis l'option de débogage, le compilateur m'affiche :

"User program running

User program finished"

Je précise que je suis sous NetBeans.

(visiblement l'erreur vient de la ligne "intent.putExtra("continueGame", "continueGame");")

Lien vers le commentaire
Partager sur d’autres sites

Un petite remarque sur ton code : je pense que le nom du paramètre à récupérer que tu passes dans "putExtra" doit être le même dans tes deux cas car tu as écrit ceci "intent.putExtra("newGame", "newGame");", et "intent.putExtra("continueGame", "continueGame");" => le nom du paramètre à récupérer via le "getExtras" correspond au premier argument de la fonction "putExtra"

Quand tu dis

"l'application quitte"

Qu'est qui se passe ? As-tu un message d'erreur ?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...