psychopathe Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 Salut à tous, Je tente de modifier mon HelloWorld pour me perfectionner mias je rencontre une erreur... Pourtant Eclipse ne m'en indique aucune! Voici mes codes : => HelloWorld.java package com.aurelien.android.helloworld; import android.app.Activity; import android.os.Bundle; public class HelloWorld extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } => strings.xml <?xml version="1.0" encoding="utf-8"?> HelloWorld ! HelloWorld => colors.xml <?xml version="1.0" encoding="utf-8"?> #fff => dimensions.xml <?xml version="1.0" encoding="utf-8"?> 20px => main.xml <?xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal" android:orientation="vertical"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/logo" /> android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="@string/hello" android:textColor="@color/white" android:textSize="@dimen/dim_hello" /> => Erreur : http://img30.imageshack.us/img30/4164/sanstitrenof.png Merci d'avance pour votre aide Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 tu les a fait à ma main tes XML de layout ? parce que tu n 'as pas d'ID sur tes contrôles comme : android:id="@+id/bidule" Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 6 août 2009 Auteur Share Posté(e) 6 août 2009 Oui je n'ai pas utilisé le mode graphique fourni par Eclipse. Je ne connais pas cette commmande, pourrais tu m'expliquer pour que je puisse corriger mon code ;) Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 tu les a fait à ma main tes XML de layout ?parce que tu n 'as pas d'ID sur tes contrôles comme : android:id="@+id/bidule" Ca ne sert à rien si son code ne réutilise pas cette référence (et apparemment, le code java fourni n'y fais pas référence). Par contre, le seul que je vois à chaud, concerne ton fichier main.xml remplace imageView par ImageView et textView par TextView. Aussi, vérifie que ton fichier Manifest.xml pointe bien sur le nom de ton package et le bon nom de ta classe. Si tu es sous eclipse, dans les différentes vues (show view) tu as DDMS et dans cette vue un onglet LogCat qui te donnera exactement l'exception généré au lancement de ton programme. Si tu ne comprends le message tu peux le copier ici je regarderais. Arnaud Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 6 août 2009 Auteur Share Posté(e) 6 août 2009 j'ai corrigé le fichier main.xml, pour ce qui est du fichier Manifest.xml je ne vois rien de particulié... <?xml version="1.0" encoding="utf-8"?> package="com.aurelien.android.helloworld" android:versionCode="1" android:versionName="1.0"> android:label="@string/app_name"> Pour ce qui est des différentes vues, DDMS... je ne vois pas où c'est :s Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 j'ai corrigé le fichier main.xml, pour ce qui est du fichier Manifest.xml je ne vois rien de particulié... <?xml version="1.0" encoding="utf-8"?> package="com.aurelien.android.helloworld" android:versionCode="1" android:versionName="1.0"> android:label="@string/app_name"> Pour ce qui est des différentes vues, DDMS... je ne vois pas où c'est :s Merci Ajout un point dans l'attribut android:name android:name="HelloWorld" par android:name=".HelloWorld" Pour ddms: windows/open perspective/ddms si ddms n'est pas ouvert, cliques sur Other afin de le selectionner. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 Nan mais j'ai plus simple : efface tout et fais New android project. tout est construit. Après edite tes fenêtres en visuel et quand tu sera capable d'avoir un hello world qui tourne....bein tu feras le malin à le faire à la main. Parce que là eclipse dans l editeur de manifest te mets un gros truc rouge sur ton HelloWorld où il manque le "." au début !! Bon j'ai l'air méchant là mais c'est pour ton bien ..... te te casse les dents là où il n'y a pas à se casser les dents. Et tu rique d'abandonner bêtement pour des histoires d'accents, de points, de majuscules. Truc bête : vu que tu as tes fichiers à la main : tu as bien une icône icon.png dans le répertoire res/drawable ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 Nan mais j'ai plus simple : efface tout et fais New android project. tout est construit. Après edite tes fenêtres en visuel et quand tu sera capable d'avoir un hello world qui tourne....bein tu feras le malin à le faire à la main. Parce que là eclipse dans l editeur de manifest te mets un gros truc rouge sur ton HelloWorld où il manque le "." au début !! Bon j'ai l'air méchant là mais c'est pour ton bien ..... te te casse les dents là où il n'y a pas à se casser les dents. Et tu rique d'abandonner bêtement pour des histoires d'accents, de points, de majuscules. Truc bête : vu que tu as tes fichiers à la main : tu as bien une icône icon.png dans le répertoire res/drawable ? Je ne suis pas tout à fait d'accord...c'est bien de comprendre ce que fait le développeur Sinon la piste de l'icône est fausse:ça ne fait planter que la compilation pas le prof l'apk n'étant pas génère. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
popolbx Posté(e) 6 août 2009 Share Posté(e) 6 août 2009 Je ne suis pas tout à fait d'accord...c'est bien de comprendre ce que fait le développeur A condition qu'il comprenne lui même ce qu'il fait :lol: Bon je suis méchant :| Mais quand même...faire le squelette compilable et exécutable avec eclipse c'est mieux. Partir de zéro c'est lourd. Par contre après une fois le squelette qui tourne tu peux modifier à la main. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 7 août 2009 Share Posté(e) 7 août 2009 Ton erreur vient du fait que tes views sont écrites sans majuscules dans ton layout, il faut bien faire attention aux noms Donc : LinearLayout, TextView et ImageView Ce qui donne pour ton main.xml : <?xml version="1.0" encoding="utf-8"?> xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical|center_horizontal" android:orientation="vertical"> android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:src="@drawable/logo" /> android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="@string/hello" android:textColor="@color/white" android:textSize="@dimen/dim_hello" /> Avec ce code tu ne devrais plus avoir de soucis ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 7 août 2009 Share Posté(e) 7 août 2009 Bien vu FluckySan, j'avais vu le probleme sur les views et pas sur les layouts... Un point pour toi :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 7 août 2009 Auteur Share Posté(e) 7 août 2009 Salut à tous, Merci pour vos nombreuses réponses! Alors pour ce qui est de cette histoire de point, c'est moi qui la enlevé en relisant le code car je ne voyer pas son utiliter et du coup pour moi le nom du programme été faux... J'aimerais bien d'ailleur qu'on m'explique son utilité ;) Sinon l'erreur venait bien des majuscules! Merci beaucoup pour votre aide, maintenant je le sais et ne referais plus jamais la même erreur! Pour ce qui est de ma méthode, j'ai toujours fait comme ca lorsque je me lancais dans un sujet que je ne connaissais pas! Je commence doucement, je fait un petit programme (Là c'était un HelloWorld tous simple), et une fois qu'il marche je l'améliore rajoute des fonctions... Et dès que je rencontre un problème je demande de l'aide et surtout des explications à plus performant que moi, je corrige et comprend mon erreur et je continue, et comme ca je progresse très vite, et surtout je comprend tous ce que je fais! Je profite de ce post pour vous poser une question : Que faire maintenant? Je veux dire, vous, vous avez commencé par coder quelles petites applications? Où avez vous appris? J'attends vos témoignage :D Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 7 août 2009 Share Posté(e) 7 août 2009 Salut à tous,Merci pour vos nombreuses réponses! Alors pour ce qui est de cette histoire de point, c'est moi qui la enlevé en relisant le code car je ne voyer pas son utiliter et du coup pour moi le nom du programme été faux... J'aimerais bien d'ailleur qu'on m'explique son utilité ;) Sinon l'erreur venait bien des majuscules! Merci beaucoup pour votre aide, maintenant je le sais et ne referais plus jamais la même erreur! Pour ce qui est de ma méthode, j'ai toujours fait comme ca lorsque je me lancais dans un sujet que je ne connaissais pas! Je commence doucement, je fait un petit programme (Là c'était un HelloWorld tous simple), et une fois qu'il marche je l'améliore rajoute des fonctions... Et dès que je rencontre un problème je demande de l'aide et surtout des explications à plus performant que moi, je corrige et comprend mon erreur et je continue, et comme ca je progresse très vite, et surtout je comprend tous ce que je fais! Je profite de ce post pour vous poser une question : Que faire maintenant? Je veux dire, vous, vous avez commencé par coder quelles petites applications? Où avez vous appris? J'attends vos témoignage :D Merci L'histoire du ".": en haut du fichier tu as définis le nom du package de ton application. Ainsi, dans android:name tu mets la classe avec son path relatif, ce qui donnera par la suite lors de l'appel com.monexample.helloworld.HelloWorld. Dans ton cas d'erreur, Android recherchait une classe HelloWorld (sans package donc), donc introuvable...Si tu veux appeler une classe d'un autre package depuis ton application com.example.helloworld, la valeur d'Android:name indiquera le path de la classe à laquelle tu souhaites accéder ex: com.example2.bonjourtoutlemonde.Bonjour. Tu pourrais maintenant essayer de faire une application pour tester tous les composants widgets disponibles et notamment les listes (ListView, ListActivity, Spinner...) en accédant à des données statiques XML, puis une ressource distante (en jouant avec des threads) et une base de données que tu géreras de A à Z, et enfin l'accès aux données présente dans le contentprovider de l'application Contact. Bon courage Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 7 août 2009 Share Posté(e) 7 août 2009 (modifié) Tu pourrais maintenant essayer de faire une application pour tester tous les composants widgets disponibles et notamment les listes (ListView, ListActivity, Spinner...) en accédant à des données statiques XML, puis une ressource distante (en jouant avec des threads) et une base de données que tu géreras de A à Z, et enfin l'accès aux données présente dans le contentprovider de l'application Contact.Bon courage Oui, il faut commencer par là :D Pour compléter en te donnant des exercices (et des exemples) tu peux commencer par lire les principaux composants d'Androïd, ça t'aidera à comprendre de quoi est constitué une application : http://developer.android.com/guide/topics/fundamentals.html Ensuite tu peux te pencher sur les Views et Widgets l'a dit Arnouf en regardant les exemples de la doc Google : http://developer.android.com/guide/tutorials/views/index.html Puis tu peux réaliser le tutorial un peu plus complet que propose Google (il s'agit de réaliser une application Notepad), il t'apprend pô mal de choses : http://developer.android.com/guide/tutorials/notepad/index.html Bon développement ! Modifié 7 août 2009 par Fluckysan Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
arnouf Posté(e) 7 août 2009 Share Posté(e) 7 août 2009 Tu pourrais maintenant essayer de faire une application pour tester tous les composants widgets disponibles et notamment les listes (ListView' date=' ListActivity, Spinner...) en accédant à des données statiques XML, puis une ressource distante (en jouant avec des threads) et une base de données que tu géreras de A à Z, et enfin l'accès aux données présente dans le contentprovider de l'application Contact.Bon courage[/quote'] Oui, il faut commencer par là :D Pour compléter en te donnant des exercices (et des exemples) tu peux commencer par lire les principaux composants d'Androïd, ça t'aidera à comprendre de quoi est constitué une application : http://developer.android.com/guide/topics/fundamentals.html Ensuite tu peux te pencher sur les Views et Widgets l'a dit Arnouf en regardant les exemples de la doc Google : http://developer.android.com/guide/tutorials/views/index.html Puis tu peux réaliser le tutorial un peu plus complet que propose Google (il s'agit de réaliser une application Notepad), il t'apprend pô mal de choses : http://developer.android.com/guide/tutorials/notepad/index.html Bon développement ! Flucksan: ANDROID et non ANDROÏD...tu vas y arriver!!:rolleyes: Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 7 août 2009 Auteur Share Posté(e) 7 août 2009 Ok, je vais faire ca! Je vais apprendre à creer des belles petites interfaces, puis je pense faire des petits programmes comme un convertisseur d'unité... Et ensuite je pourrais me lancer dans de vrai projet ;) Merci à tous ceux qui m'ont aidé! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fluckysan Posté(e) 7 août 2009 Share Posté(e) 7 août 2009 Flucksan: ANDROID et non ANDROÏD...tu vas y arriver!!:rolleyes: Mdr, je vais le copier 100 fois :p Android, Android ... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
psychopathe Posté(e) 8 août 2009 Auteur Share Posté(e) 8 août 2009 Salut, Bon je progresse, j'avance... Mais je rencontre un petit problème, je sais maintenant creer des menu et des dialogues. Mais je rencontre un problème pour coupler les deux, voilà j'essaye de faire un code assez simple : Un menu (News note, Quit) et j'aimerais que lorsqu'on selectionne "Quit" un AlertDialog s'affiche pour demander la confirmation puis si besoin ferme le programme. Le problème qe je rencontre et le suivant : J'ai déclaré mon menu dans un fichier menu.xml, du coup je ne sais pas comment faire dans le code java pour indiquer que des qu'une option du menu est selectionner il faut faire telles ou telles choses. Il ne reconnait pas les ID de mon menu. Peut etre que je suis obligé de déclarer mon menu dans le code java? D'ailleur faut il mieu le faire dans le java ou le xml? Voilà mes codes : => test.java : 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; public class test extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { 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) { switch (item.getItemId()) { case quit: Dialog(); return true; case news_note: return true; } return false; } 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; } } => main.xml : <?xml version="1.0" encoding="utf-8"?> android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > android:id="@+id/my_text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello" /> android:id="@+id/my_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am a Button" android:layout_gravity="center_horizontal" /> => menu.xml : <?xml version="1.0" encoding="utf-8"?> android:title="Quit" /> Merci 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 Bein moi les menus je les gere par code c est plus simple. 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 Surcharge la méthode onOptionsItemSelected de la classe Activity qui prend un menuItem en paramètre et ensuite tu testes l'id du menuItem if (monMenuItem==R.id.example_submenu_item){ //lance une autre activity } Voilou NB: que tu fasses ton menu via Inflater ou en Java comme le propose popolbox, le traitement de la selection d'un menu se fait de cette manière (quand c'est bien codé :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 (modifié) Salut, Hummm interressant, je m'y connais déjà beaucoup plus en C! Pourrais tu m'indiquer la marche à suivre pour coder en C? Merci EDIT : J'avais pas vu ton message arnouf, mais je n'ai aps compris ce que tu voulais que je modifie dans mon code? Ou je place ce que tu m'as dit? Modifié 9 août 2009 par psychopathe 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 Dans ta class test tu fais quelque chose: public boolean onOptionsItemSelected(MenuItem item){ if (item.getId()==R.id.mon_submenu_example){ // je fais ce que je veux avec mes cheveux } return super.onOptionsItemSelected(item); } Ajoute ça et cela devrait marcher. Pour faire du code en C: niet! Tu peux créer des librairies C/C++, les builder pour en faire des lib statique ou dynamique, et faire appel à des fonctions de ces libs. Tu ne developperas d'application pour cette plateforme (UI incluse) via le langage C. 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 Merci pour ces expliquations! J'ai un petit problème que je n'avais pas vu avant, dans mon code .java lorsque je déclare mon menu, mes "itemId" sont tous sous-lignés en rouge. Je ne peux donc pas compiler. De plus dans la fonction "onOptionsItemSelected" j'aimerais démarrer la fonction "Dialog", mais là aussi c'est sous-ligné. (J'ai aussi apporter quelques modifs à mon code, donc je le re-post) => test.java 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 { @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, "") .findViewById(R.id.nouvelle_note); menu.add(0, MENU_QUITTER, 0, "") .findViewById(R.id.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; } } => menu.xml <?xml version="1.0" encoding="utf-8"?> android:title="Quitter" /> Merci 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 Sincèrement, je pense que tu devrais regarder du coté des tutoriaux Android...parce que là tu sembles tout mélanger... sur la création de ton menu: - A quelle valeur correspond MENU_NOUVELLE_NOTE?? - tu ajoute pour chaque entrée de ton menu un id, mais tu n'as pas charger le menu via Inflater... Tu devrais y aller étape par étape... 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 Mais j'ai lus les tutos, je me suis basé sur les tutos offciels, plus précisement sur ce code : /* 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; } Il n'indique pas de fonction Inflater, ne déclare pas MENU_NEW_GAME... Et j'ai déjà réussi à afficher un menu ;) 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.