Roromix Posted April 25, 2010 Share Posted April 25, 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 ? Link to comment Share on other sites More sharing options...
Profete162 Posted April 25, 2010 Share Posted April 25, 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; } Link to comment Share on other sites More sharing options...
Roromix Posted April 25, 2010 Author Share Posted April 25, 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 Link to comment Share on other sites More sharing options...
Profete162 Posted April 25, 2010 Share Posted April 25, 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; } } Link to comment Share on other sites More sharing options...
Pierre87 Posted April 25, 2010 Share Posted April 25, 2010 ce sont des constantes définies précédemment dans la classe Link to comment Share on other sites More sharing options...
Roromix Posted April 25, 2010 Author Share Posted April 25, 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 ? Link to comment Share on other sites More sharing options...
Pierre87 Posted April 25, 2010 Share Posted April 25, 2010 haaaaaa ok ! essayes R.id.m_a_new Link to comment Share on other sites More sharing options...
Roromix Posted April 25, 2010 Author Share Posted April 25, 2010 J'y avait pas pensé. Merci c'est nickel Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.