Roromix Posté(e) 25 avril 2010 Share Posté(e) 25 avril 2010 public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case [color=red][u]m_a_new[/u][/color]: Intent intent = new Intent(helloworld.this, world2.class); startActivity(intent); return true; } return false; } Dans mon menu.xml j'ai un item avec l'ID m_a_new mais impossible de l'utiliser dans onOptionsItemSelected Il me dit "m_a_new" cannot be resolved" Pourtant il existe bien Quelqu'un peut-il m'aider à résoudre ce problème ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 25 avril 2010 Share Posté(e) 25 avril 2010 Bonjour, est-tu familier avec les types de variables de Java? Le switch case que tu fais doit se faire sur un entier, exemple: switch(item.getItemId()) { case 1: System.out.println("vous avez appuyé sur le premier élément"); case 2: System.out.println("vous avez appuyé sur le second élément"); case 3: System.out.println("vous avez appuyé sur le troisième élément"); default: System.out.println("vous avez appuyé sur un autre élément"); et toi, tu lui dit: case m_a_new: ce qui ne veut rien dire. Limite, tu peux dire: "int m_a_new=1" juste avant, mais je ne sois pas certain que c'est ce que tu veux faire essaye ceci pour mieux comprendre public boolean onOptionsItemSelected(MenuItem item) { system.out.println("vous avez appuyé sur l'élément: "+item.getId()); return true; } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Roromix Posté(e) 25 avril 2010 Auteur Share Posté(e) 25 avril 2010 Bah je suis l'exemple du Dev Guide Android: Sauf que dans le dev guide le menu est généré dans le code lui même /* Creates the menu items */ public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_NEW_GAME, 0, "New Game"); menu.add(0, MENU_QUIT, 0, "Quit"); return true; } /* Handles item selections */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_NEW_GAME: newGame(); return true; case MENU_QUIT: quit(); return true; } return false; } Donc bon Lien vers le commentaire Partager sur d’autres sites More sharing options...
Profete162 Posté(e) 25 avril 2010 Share Posté(e) 25 avril 2010 je me repete donc: * il faut d'abord lire un turorial Java et savoir ce qu'est une variable avant de se lancer tête baissée. * mon code pour t'aider à comprendre reste toujours valable: public boolean onOptionsItemSelected(MenuItem item) { system.out.println("vous avez appuyé sur l'élément: "+item.getId()); return true; } * et un cadeau pour toi :P http://www.androidsnippets.org/snippets/31/ public class TestProject extends Activity { /* Set ID's */ private final int MENU_NEW_GAME = 0; private final int MENU_QUIT = 1; /* Create Menu Items */ public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_NEW_GAME, 0, "Help"); menu.add(0, MENU_QUIT, 0, "About"); return true; } /* Handles Item Selection */ public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case MENU_NEW_GAME: newGame(); return true; case MENU_QUIT: finish(); return true; } return false; } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 25 avril 2010 Share Posté(e) 25 avril 2010 ce sont des constantes définies précédemment dans la classe Lien vers le commentaire Partager sur d’autres sites More sharing options...
Roromix Posté(e) 25 avril 2010 Auteur Share Posté(e) 25 avril 2010 ce sont des constantes définies précédemment dans la classe Oui j'ai bien vu mais moi j'ai pas eu besoin de les prédéfinir étant donné que mon menu est un XML Petit bout du XML: L'ID n'est pas un entier Et quand on fait item.getItemId(); ça me donne 2131165196 Du coup vaut mieux créé son menu direct via le code plutôt qu'en XML si on veux connaitre d'avance les ID (entier) A moins que tu ai une meilleure solution ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Pierre87 Posté(e) 25 avril 2010 Share Posté(e) 25 avril 2010 haaaaaa ok ! essayes R.id.m_a_new Lien vers le commentaire Partager sur d’autres sites More sharing options...
Roromix Posté(e) 25 avril 2010 Auteur Share Posté(e) 25 avril 2010 J'y avait pas pensé. Merci c'est nickel 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.