Partage
  • Partager sur Facebook
  • Partager sur Twitter

{{Titre incorrect}} Android chaine de caractères.

affichage.

    27 février 2012 à 0:31:44

    bonsoir à tous,

    j'aimerai perferctionner un peu le "hello world" du magnifique tuto sur le dev d'application pour android.

    Mon but serait de pouvoir afficher plusieurs lignes de texte, or avec le code ci dessous, il n'est possible
    d'afficher q'une seule ligne :

    import android.app.Activity;
    import android.os.Bundle;
    import android.widget.TextView;
    
    public class PreumsActivity extends Activity 
    {
        TextView coucou = null;
    
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            
            coucou = new TextView(this);
            coucou.setText("Bonjour, vous me devez 1 000 000€.");
            setContentView(coucou);
        }
    }
    


    merci pour vos idées :)
    • Partager sur Facebook
    • Partager sur Twitter
      27 février 2012 à 11:27:56

      Soit tu ajoutes des \n dans ta chaîne de caractères comme dans n'importe quel langage de programmation, soit tu fais un fichier XML pour faire l'interface. Dans Eclipse en plus, tu as droit à une vue graphique de ton fichier XML.
      • Partager sur Facebook
      • Partager sur Twitter
        28 février 2012 à 23:05:23

        Merci :)

        Et pourquoi ce code ne fonctionne pas correctement ? ( le texte ne s'affiche qu'une fois)

        package remi.remi;
        
        import android.app.Activity;
        import android.os.Bundle;
        import android.widget.TextView;
        
        public class remiActivity extends Activity 
        {
        	TextView coucou = null;
            int i = 0;
        
            @Override
            public void onCreate(Bundle savedInstanceState) 
            {
                super.onCreate(savedInstanceState);
                
                coucou = new TextView(this);
                for(i = 0; i < 10; i++)
                coucou.setText("salut\n");
                setContentView(coucou);
            }
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          28 février 2012 à 23:57:07

          Ta boucle va insérer dix fois dans ton TextView la chaîne "salut
          ", alors que tu aurais voulu avoir un truc du genre "salut
          salut
          salut
          salut
          salut
          salut
          salut
          salut
          salut
          salut

          "

          La solution serait plutôt du genre
          String salut = "salut\n";
          for(int i = 0 ; i < 10 ; i++)
              salut = salut.append("salut\n");
          coucou.setText(salut);
          
          • Partager sur Facebook
          • Partager sur Twitter
            29 février 2012 à 0:03:05

            Citation : DakuTenshi

            Ta boucle va insérer dix fois dans ton TextView la chaîne "salut


            "Écraser le texte précédent" serait plus adéquat. En revanche, pas besoin de passer par une string externe (cf. ligne du dessous).

            KaNuLaNa: Le textView possède lui même une méthode append() qui fait ce que tu souhaite :)
            • Partager sur Facebook
            • Partager sur Twitter

            "J'aimerai faire un jeu, mais pas un gros jeu hein. Un petit truc simple du style MMO."

              29 février 2012 à 0:21:50

              Ce serai super =D

              LE code contient une erreur à la ligne de l'appel de la méthode .append.
              Eclipse ne connait pas cette méthode. Dois-je faire un import particulier ?


              Ok, finalement ca roule ;) Merci !

              C'est drôle, android à un comportement étrange. le code suivant ne s'affiche q'une fois la boucle while
              terminé.

              import android.R;
              import android.app.Activity;
              import android.os.Bundle;
              import android.widget.TextView;
              
              public class remiActivity extends Activity 
              {
                  TextView text = null;
                  int i = 0;
              
                  @Override
                  public void onCreate(Bundle savedInstanceState) 
                  {
                      super.onCreate(savedInstanceState);
                      
                      text = new TextView(this);
                      
                      while(i < 100000)
                      {
                      i++;
              
                      text.append("_*_Salut Mon Pote_*_\n");
                      setContentView(text);
              
                      }
                      
                      
                  }
              }
              

              Dans une console normale, chaque ligne apparaît en temps réel, en fonction de l'instant ou la machine
              exécute le code. Et bien ici ce n'est pas le cas... L’écran reste noir environ 5 secondes avant d'afficher mon texte...

              Ce code ci ne s'affiche jamais :

              import android.R;
              import android.app.Activity;
              import android.os.Bundle;
              import android.widget.TextView;
              
              public class remiActivity extends Activity 
              {
                  TextView text = null;
                  boolean i = true;
              
                  @Override
                  public void onCreate(Bundle savedInstanceState) 
                  {
                      super.onCreate(savedInstanceState);
                      
                      text = new TextView(this);
                      
                      while(i)
                      {
              
                      text.append("_*_Salut Mon Pote_*_\n");
                      setContentView(text);
              
                      }
                      
                      
                  }
              }
              


              Comment expliqueriez vous ça ?
              Y a-t-il un moyen de faire que le code s'exécute comme dans une console normal ou c''est mort avec Android ? :p
              • Partager sur Facebook
              • Partager sur Twitter
                1 mars 2012 à 2:09:54

                C'est le comportement voulu. Quand tu fais cette boucle avec la console, à chaque itération de la boucle le texte sera écrit dans la console
                for(int i = 0 ; i < 10 000 ; i++)
                    //On écrit le texte dans la console
                    System.out.println("salut\n");
                

                Le code que tu fais avec Android se contente de rajouter du texte dans ta TextView, qui sera ensuite affiché :
                for(int i = 0 ; i < 10 000 ; i++){
                    //Tu rajoutes du texte dans ta TextView
                    text.append("_*_Salut Mon Pote_*_\n");
                    //La TextView devient le contenu affiché dans ton activité
                    setContentView(text);
                }
                

                Cependant comme expliqué ici : http://www.siteduzero.com/tutoriel-3-5 [...] tml#ss_part_3

                Seul le dernier "setContentView" sera prit en compte, histoire de ne pas avoir à inflater l'arbre XML à chaque fois, puisque la désérialisation est un processus très lent.

                Et de toute façon comme nous sommes dans le onCreate, on se trouve avant l'affichage de l'activité et donc tes modifications répétées ne seraient pas visibles, à l'exception de la dernière puisque c'est elle qui sera d'actualité quand ton activité sera bien créée.

                Ton dernier code ajoutera du texte à l'infini sans finir de créer ton activité, qui ne sera pas conséquent jamais visible.

                Enfin pour jouer avec la console d'Android, tu peux aller voir comment procéder ici : http://www.siteduzero.com/tutoriel-3-6 [...] tml#ss_part_3
                • Partager sur Facebook
                • Partager sur Twitter
                  1 mars 2012 à 10:31:09

                  Je te remercie pour tes réponses :)

                  Je vais étudier tes pistes de travail !

                  Bonne journée ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 mars 2012 à 14:14:51

                    Le message qui suit est une réponse automatique.
                    Les réponses automatiques nous permettent d'éviter de répéter de nombreuses fois la même chose, et donc de gagner beaucoup de temps.
                    Nous sommes néanmoins ouverts à toute question ou remarque, n'hésite pas à me contacter par messagerie privée à ce sujet.


                    Titre du sujet à modifier


                    Bonjour,

                    Comme son nom l'indique, ce forum est dédié aux problèmes de développements sur smartphones et tablettes. Vous n'êtes pas sans savoir que les modèles sont nombreux et que les développements sont très différents d'un OS à l'autre. Aussi, il est obligatoire d'ajouter une balise au titre de son sujet afin de bien cadrer le problème.

                    Exemples de titres corrects :
                    • [iPhone] Problème de curseurs
                    • [Android] Faire un jeu

                    Exemples de titres incorrects :
                    • Problème de curseurs
                    • Faire un jeu
                    • ca marche pa

                    Étant donné que ton message est par ailleurs bien présenté, je t'invite à modifier le titre du sujet pour le clarifier.

                    De plus, le titre idéal devrait résumer ton problème ou ta question en une petite phrase. Voici quelques liens pour t'aider à choisir au mieux ton titre :


                    Comment fait-on pour éditer un titre ?

                    Si tu es l'auteur du topic, tu peux uniquement le changer en éditant le premier post du topic à l'aide de l'icône Image utilisateur.

                    Attention : merci de modifier ton titre dans les plus brefs délais, sans quoi le sujet sera fermé.

                    Merci de ta compréhension :)
                    Les modérateurs.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    {{Titre incorrect}} Android chaine de caractères.

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown