arnouf Posté(e) 9 août 2009 Share Posté(e) 9 août 2009 Tu m'as dit mieux connaitre le C, c'est une chose mais as tu des notions de programmation JAva? Le bout de code que tu m'affiches fais partie d'un ensemble de code...Les constantes (en majuscules) sont déclarées quelques part....forcément, sinon cela ne compile pas! Android n'emporte pas une variable MENU NEW GAME ;) en faisant findViewById tu recherches une vue....or ici tu ne recherches pas une vue mais un id, identifié dans ton fichier menu. Tu utilises les findViewByid pour retrouver un objet présent dans ton écran en cours Je ne comprends pas pourquoi tu as collé ce findViewById...ca n'a aucun sens...Et la compile ne doit certainement pas passé! Vire ce findViewById! Ensuite, définie tes constantes avec une valeur (1, 2, 3...). Si tes id sont en rouge, tu remarqueras que tu utilises la méthode add, comme dans le tuto mais tu ne passes pas le même nombre d'argument et avec des types d'arguments incorrect par rapport au constructeur... Les tutos c'est bien, mais souvent tu as également un fichier zip avec l'ensemble du projet...qu'il faut un peu étudier avant de copier le code, sans comprendre et en croisant les doigts pour ca marche!;) Allez courage ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 9 août 2009 Share Posté(e) 9 août 2009 alors ça c'est beau: if (item.getItemId()==R.id.quitter){ Dialog(); } Dialog tout seul ne veut rien sire surtout que tu as juste après une fonction onCreateDialog.... Là ça sent le copier coller de plusieurs morceaux ^^ onCreateDialog().show(); devrait mieux passer si évidement tu supprime la dernier ligne avec le builder.create()... Mais là je dirais quand même que tu fais carrément n'importe quoi. Au pire pas vraiment... mais quand tu fouine pour savoir comment utiliser des trucs..apprends à savoir sur quelle ligne tu as planté. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 9 août 2009 Share Posté(e) 9 août 2009 alors ça c'est beau: if (item.getItemId()==R.id.quitter){ Dialog(); } Dialog tout seul ne veut rien sire surtout que tu as juste après une fonction onCreateDialog.... Là ça sent le copier coller de plusieurs morceaux ^^ onCreateDialog().show(); devrait mieux passer si évidement tu supprime la dernier ligne avec le builder.create()... Mais là je dirais quand même que tu fais carrément n'importe quoi. Au pire pas vraiment... mais quand tu fouine pour savoir comment utiliser des trucs..apprends à savoir sur quelle ligne tu as planté. C'est plus directement dit :D Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 9 août 2009 Auteur Share Posté(e) 9 août 2009 Salut, Merci pour ta réponse. En effet je connais beacoup mieu le C que le java, je programme en C depuis maintenant 3 ans alors que le java c'est tout nouveau pour moi! J'apprends peu à peu grâce au tuto sur le site du zero (http://www.siteduzero.com/tutoriel-3-10601-programmation-en-java.html). Je me doutais bien qu'il fallait que je les déclares quelque part mais je ne savais pas comment faire, j'ai donc utilisé l'aide automatique de Eclipse, mais je ne sais pas si elles ont bien été déclarés : private static final int MENU_NOUVELLE_NOTE = 0; private static final int MENU_QUITTER = 1; En utilisant "findViewById" je pensais enfaite indiquer au code .java les infos du menu écrit dans le .xml ("title"...), mais apparement ce n'est pas sont but :D Mais j'avance! Surtout grace à votre aide je comprends ce que je fais! Bon certe le mouline un peu, mais ca vient! Le truc qui pose problème maintenant c'est comment afficher le Dialog? J'ai relus le tuto et je pensais utilisé la fonction "showDialog();". Mais bon je ne suis pas sur du tout :| Enfin bon une fois que ce code compilera j'aurais fait le plus dur! Et compris les bases de ce nouveau language! Le reste devrait couler tous seul... Mon code en rapel : package com.aurelien.android.test; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Button; import android.widget.TextView; public class test extends Activity { private static final int MENU_NOUVELLE_NOTE = 0; private static final int MENU_QUITTER = 1; @Override public void onCreate(Bundle savedInstanceState) { Button myButton = (Button) findViewById(R.id.my_button); TextView myText = (TextView) findViewById(R.id.my_text); super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(0, MENU_NOUVELLE_NOTE, 0, "Nouvelle note"); menu.add(0, MENU_QUITTER, 0, "Quitter"); return true; } public boolean onOptionsItemSelected(MenuItem item){ if (item.getItemId()==R.id.quitter){ Dialog(); } return super.onOptionsItemSelected(item); } protected Dialog onCreateDialog(int id) { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage("Are you sure you want to exit?"); builder.setCancelable(false); builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { test.this.finish(); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); return alert; } } Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 10 août 2009 Auteur Share Posté(e) 10 août 2009 Salut, Bon j'y ai passé ma matiné, relis tous les tutos fait plein de tests, mais ca marche!! Voilà mon code : package com.aurelien.android.test; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Button; import android.widget.TextView; public class test extends Activity { static final int DIALOG_QUITTER = 0; @Override public void onCreate(Bundle savedInstanceState) { Button myButton = (Button) findViewById(R.id.my_button); TextView myText = (TextView) findViewById(R.id.my_text); super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; } public boolean onOptionsItemSelected(MenuItem item){ if (item.getItemId()==R.id.quitter){ showDialog(DIALOG_QUITTER); } return super.onOptionsItemSelected(item); } protected Dialog onCreateDialog(int id) { Dialog dialog; switch(id) { case DIALOG_QUITTER: AlertDialog.Builder fenetre = new AlertDialog.Builder(this); fenetre.setMessage("Etes vous sur de vouloir quitter?"); fenetre.setCancelable(false); fenetre.setPositiveButton("Oui", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { test.this.finish(); } }) .setNegativeButton("Non", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = fenetre.create(); return alert; default: dialog = null; } return dialog; } } Le seul truc qui m'intrique est mon switch dans ma fonction onCreateDialog, normalement je devrais bien mettre un break; à la fin de mon case non? Mais quand je le met Eclipse me le sous-ligne en rouge... Je ne comprends pas pourquoi. Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 10 août 2009 Share Posté(e) 10 août 2009 C'est parce qu'il y a un return donc tu n'as pô besoin du break; ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 10 août 2009 Share Posté(e) 10 août 2009 Si tu mets un break après le return...que se passe-t-il? .. .. .. le break n'est pas appelé, donc Eclipse te le signale. Si tu le mets avant, le return ne sera pas appelé non plus Solution: ne pas mettre de break :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 10 août 2009 Auteur Share Posté(e) 10 août 2009 Ok :D Mais sinon j'utilise la bonne méthode? C'est bien comme ca qu'il faut si prendre pour afficher un Dialog? Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 10 août 2009 Share Posté(e) 10 août 2009 Si ca marche...c'est que c'est une bonne méthode :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 10 août 2009 Share Posté(e) 10 août 2009 C'est bien de cette façon qu'il faut procéder pour afficher une Dialog ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 10 août 2009 Auteur Share Posté(e) 10 août 2009 Ok Je vais donc continuer la lecture des tutos pour ensuite tenter de faire le bloc-notes ;) Je pourrais bientôt faire mes propres applications :D Encore merci pour votre aide! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.