axool Posté(e) 12 novembre 2010 Share Posté(e) 12 novembre 2010 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 More sharing options...
cyrilbouisson@gmail.com Posté(e) 13 novembre 2010 Share Posté(e) 13 novembre 2010 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 More sharing options...
axool Posté(e) 14 novembre 2010 Auteur Share Posté(e) 14 novembre 2010 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 More sharing options...
Pierre87 Posté(e) 14 novembre 2010 Share Posté(e) 14 novembre 2010 ben regarde où passe l'exécution de ton code.... l'application ne se "quitte" pas mystérieusement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 14 novembre 2010 Share Posté(e) 14 novembre 2010 Bin si tu cliques sur le bouton Continue avec niveau=0 c'est normal que ca quitte! Mets un debug avant ton finish() pour voir ce qui ne va pas. Lien vers le commentaire Partager sur d’autres sites More sharing options...
axool Posté(e) 14 novembre 2010 Auteur Share Posté(e) 14 novembre 2010 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 More sharing options...
cyrilbouisson@gmail.com Posté(e) 15 novembre 2010 Share Posté(e) 15 novembre 2010 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 More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.