Ilkar Posté(e) 21 août 2010 Posté(e) 21 août 2010 Bonjour Je souhaite changer le texte d'un TextView toutes les secondes. Voici le code que j'utilise /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); dtgTextView= (TextView) findViewById(R.id.TextView01); dtgTextView.setText("Depart"); TimerTask myTimerTask = new TimerTask(){ @Override public void run() { String str = (String) dtgTextView.getText(); if (str.equalsIgnoreCase("Depart")){ dtgTextView.setText("Fin"); }else{ dtgTextView.setText("Depart"); } } }; myTimer.scheduleAtFixedRate(myTimerTask, 0, 1000); } } Et ca plante sur la ligne : myTimer.scheduleAtFixedRate(myTimerTask, 0, 1000); Une idée ? Merci
Infernus Posté(e) 21 août 2010 Posté(e) 21 août 2010 Donne le message d'erreur. Mais il me semble qu'il ne faut pas lancer le myTimer dans le OnCreate :)
Ilkar Posté(e) 22 août 2010 Auteur Posté(e) 22 août 2010 J'ai trouve J'ai oublie d'initialiser myTimer = new Timer(); Mais cela ne clignote pas pour autant. Voici mon code légèrement modifié : public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final int i = 0; setContentView(R.layout.main); dtgTextView= (TextView) findViewById(R.id.TextView01); dtgTextView.setText(dep); myTimer = new Timer(); TimerTask myTimerTask = new TimerTask(){ int ref = i; @Override public void run() { String etat = dtgTextView.getText().toString(); if (etat.equalsIgnoreCase("Depart")){ dtgTextView.setText("Fin"); Log.i(TAG,"Fin"); }else{ dtgTextView.setText("Depart"); Log.i(TAG,"Depart"); } } }; myTimer.scheduleAtFixedRate(myTimerTask, 1000, 1000); } Le Log montre bien une alternance Depart/Fin/Depart mais le texte ne change pas. Peu-être faut-il rafraichir la fenêtre si oui comment ? merci
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.