Aller au contenu

Problème HelloWorld


psychopathe

Recommended Posts

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 ;)

Lien vers le commentaire
Partager sur d’autres sites

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é.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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;
   }
}

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...