2012-03-26 1 views
0

Je veux SetText à fixedRate avec gestionnaire de retard de post, mais je ne peux pas le faire parce que je reçois l'erreur que je ne peux pas changer le texte dans un fil différent du fil principal.SetText à taux fixe

J'ai un texte statique stocké dans une classe différente qui le modifie et je veux définir le texte du TextView à ce texte toutes les 100 millisecondes.

Comment puis-je résoudre ce problème?

Répondre

0

Dans Android, vous êtes censé manipuler des éléments d'interface utilisateur uniquement sur le thread UI. Vous pouvez utiliser asynctask, hander ou runOnUiThread pour y parvenir. Ce dernier est le plus simple:

runOnUiThread(new Runnable() { 
    public void run() { 
     textview.setText("some text"); 
    } 
} 
+0

textview.setText ("texte"); ne fonctionne pas, pourquoi? – Ata

+0

le textview existe-t-il même? – njzk2

0

Programmer une minuterie pour faire la tâche ..

private static class UpdateText extends TimerTask { 
      private final TextView tv; 

      public UpdateText(TextView tv) { 
       this.tv = tv; 
      } 

      @Override 
      public void run() { 
       tv.post(new Runnable() { 

        public void run() { 
         tv.setText(tv.getText() + "Append here"); 
        } 
       }); 
      } 

En onCreate faire ce

tv.setText("Append here"); 
     setContentView(tv); 

     Timer timing = new Timer(); 
     timing.schedule(new UpdateText(tv), 3000, 3000); 
Questions connexes