Aller au contenu

Afficher une variable sous android


Recommended Posts

Bonjours je suis nouveau sur ce forum que j'ai découvert depuis que je projette de m'acheter un téléphone sous android (soit environ deux semaines) et je dois dire que c'est vraiment le meilleur !!

Je suis débutant dans la programmation sous android et je souhaiterais afficher une variable de type int à l'écran tout simplement. J'ai cherché mais en vain. Je sais que pour le texte on utilise textView, alors j'ai essayé de cast mon nombre en String mais ça n'a pas l'air de marcher.

Donc si vous pouviez me donner ce coups de pouce ce serait sympa, bonne fin de journée à tous

Edit : C'est bon j'ai résolu mon problème avec String.valueOf(i) même si dans un premier temps cela n'avais pas marché, j'avais du mal m'y prendre. Par contre j'aurais une autre question : je ne comprend pas comment afficher une liste de nombre, par exemple dans une boucle for, en effet cela m'affiche toujours le dernier.

Par exemple avec :

TextView textView = new TextView(this);
TextView autretxt = new TextView(this);
textView.setText("Hello world !\n");

setContentView(textView);

       for(int i = 1; i <= 10; i++)
       {
       	autretxt.setText( "\n" + String.valueOf(i));
       	setContentView(autretxt);
       }

Comment je peux faire pour afficher à l'écran :

Hello world !

1

2

...

10

Modifié par Ice
Lien vers le commentaire
Partager sur d’autres sites

Salut!

Le problème vient du fait que tu REMPLACES le contenu de ta TextView à chaque fois... Mais ca va tellement vite que tu ne vois que le résultat final, c'est a dire la derniere valeur.

Tu as plusieurs solutions:

- La première: mettre toutes les lignes dans la même TextView,

- La seconde : ajouter une TextView pour chaque ligne.

Pour la première :

Tu vas créer une StringBuffer, par exemple.

du coup, ton code donnera à peu près ca:

TextView textView = new TextView(this); 
StringBuffer contenu = new StringBuffer();
contenu.append("Hello world !\n");

for(int i = 1; i <= 10; i++) 
{ 
      contenu.append("\n" + String.valueOf(i));
}
textView.setText(contenu); 
setContentView(textView); 

Pour la seconde:

Tu vas créer un LinearLayout (ou récupérer un existant) et tu lui rajoutera, à chaque fois, une nouvelle TextView.

N'oublie pas d'ajouter la propriété orientation verticale pour ton LinearLayout. Cela permettra de mettre tes TextViews les unes apres les autres verticalement et non horizontalement (par défaut).

Ca donnera à peu près ca:

LinearLayout conteneur = new LinearLayout (this);
conteneur.setOrientation(LinearLayout.VERTICAL);
TextView textView = new TextView(this); 
textView.setText("Hello world !");
conteneur.addView(textView);
for(int i = 1; i <= 10; i++) 
{ 
      TextView ligne = new TextView(this); 
       textView.setText(String.valueOf(i));
      conteneur.addView(ligne);
}
setContentView(conteneur); 

Essaye et tu me diras...

Edit : Pour ton problème précédent, il y avait plus simple que "String.valueOf(i)" => ""+i ca revient à caster un int en String... ;)

Modifié par Kricek
Lien vers le commentaire
Partager sur d’autres sites

Salut, merci pour ton aide :)

J'aurais deux autres questions, en fait je suis en train (j'essaye plutôt) de développer une application qui utilise le micro du téléphone donc :

- C'est bien cette librairie qu'il faut utiliser : http://developer.android.com/reference/android/media/MediaRecorder.html ?

- J'en suis quasiment sûr mais le microphone ne fonctionne pas sur l'émulateur ? Donc il faut que je développe et teste mon appli sur un vrai téléphone ?

Modifié par Ice
Lien vers le commentaire
Partager sur d’autres sites

De toute manière attend toi à devoir investir dans un téléphone android si tu veux développer des application , l'émulateur c'est bien mais c'est pas vraiment parfait non plus , ça sert plus a tester ton appli sur des version d'android que tu ne possède pas.

Pour répondre à ta question , oui je crois que l'émulateur ne peut pas avoir d'entrée audio (mais je peut me tromper)

Lien vers le commentaire
Partager sur d’autres sites

De toute manière attend toi à devoir investir dans un téléphone android si tu veux développer des application , l'émulateur c'est bien mais c'est pas vraiment parfait non plus

Oui c'est pour ça que je pense me prendre et puis aussi pour le fait d'avoir un jolie smartphone.

J'ai légèrement avancé sur mon applie car j'arrive maintenant à capturer du son mais ça n'a pas été simple. Mais bon ça rame à mort on dirait que je parle au ralenti. J'ai aussi un problème avec getMaxAmplitude() qui me renvoie toujours 0. Si des gens arrivent à le faire marcher ça m'aiderais bien d'avoir un coup de main.

J'ai aussi une question qui a déjà du être posée mais ça fait une demie heure que je cherche sur google sans trouver : comment lancer une applie développée sous Éclipse sur son téléphone en lieu et place de l'émulateur ?

Bonne fin de soirée ;)

Lien vers le commentaire
Partager sur d’autres sites

rien de plus simple , tu branche ton téléphone en usb (en ayant activé le mode debug sur le téléphone) , il sera detecté par adb (et donc par eclipse et son plugin adt) , et sera dès lors utilisé a la place de ton émulateur lorsque tu lancera ton application comme tu le faisais avant

Lien vers le commentaire
Partager sur d’autres sites

Ah ah j'ai réussi à récupérer l'amplitude du son, par contre ça m'affiche tout de même beaucoup de 0, jugez par vous même :

27473525.jpg

Alors je pense que ça vient de la lenteur de l'émulateur, donc dans l'attente d'un téléphone quelqu'un serait t'il assez gentil de la tester sur son téléphone, je peux vous envoyer le code par mp :emo_im_angel:

En passant j'aurais une autre question : étant donné que j'affiche beaucoup de nombres existe t'il un moyen de scroller pour visionner l'intégralité du texte affiché ?

Merci et bonne soirée :D

Modifié par Ice
Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

Bonjours, je reviens avec une question à laquelle je ne trouve pas de réponse. En fait je suis en train de développer un spectrographe en temps réel pour afficher le spectre fréquentiel du son enregistré par le micro. Avant de commencer à développer toute une interface graphique je voudrais m'assurer du bon fonctionnement de la transformée de Fourié pour se faire j'aurais donc aimé par exemple dessiner les barres d'amplitudes comme sur cette images avec des points tout simplement. Faire du genre :

...

.....

..

.........

..

.......

..

.

.

....

.........

..

Seulement je n'arrive pas à faire un texte qui se rafraichie, je sais pas comment dire mais il m'affiche seulement la dernières occurrence au lieu de voir les barres qui montent et qui descendent.

Si vous avez une idée ça m'aiderais beaucoup, merci :)

Lien vers le commentaire
Partager sur d’autres sites

si tu veux voir les barres qui montent et descendent va falloir rajouter du code.

ex : tu récupère les données (spectorielle?) toutes les 500ms , donc tu rafraîchie ton textview tout les 500ms .

A la place de ça , tu vas rafraîchir ton textview tout les 100ms (donc 5 fois plus) et entre les deux récupération de données tu va avoir toutes les 100ms ta barre qui descendra d'un cran.

c'est ça que tu veux ?

Modifié par eephyne
Lien vers le commentaire
Partager sur d’autres sites

Oui c'est à peut près ça : j'ai une fréquence d'échantillonnage de 16 000Hz qui me rempli un buffer de 4096 cases sur lequel j'applique la transformé de fourier, ensuite je coupe le tableau de résultat en deux à cause du repliement. Donc j'ai un tableau de 2048 cases que je réduirai car je ne peux afficher que 30 lignes sur le téléphone.

Merci pour ton aide :)

Modifié par Ice
Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Salut Ice,

Je regarde moi-même les applis Android pour m'en faire une cet été si je me fais chier mais je suis plus que débutant, ton programme a l'air bien rempli de différentes fonctions d'Android est-ce que tu pourrais me l'envoyer (si tu es pour le "logiciel libre"...?), cela m'aide généralement bien plus qu'un livre!!

Merci!

Lien vers le commentaire
Partager sur d’autres sites

  • 1 month later...

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