Android Comment exécuter une horloge simple dans Android
Question
J'ai utilisé le script pour créer une horloge simple.Mais lorsque j'exécute la fonction d'exécution du programme () fonctionne, mais lorsque j'identifie une valeur à TextView, il affiche malheureusement l'erreur dans l'appareil Android.Aidez-moi s'il vous plaît à résoudre le problème. Voici mon code
TextView tv=(TextView) findViewById(R.id.textView1);
MyTimerTask mytask=new MyTimerTask();
Timer timer = new Timer();
timer.schedule(mytask, 3000, 1000);
class MyTimerTask extends TimerTask {
public void run() {
tv.setText("Testing"); //(WHEN THIS LINE WILL BE COMMENT
//IT IS RUNNING PROPERLY BUT WHEN
//I SHOW THIS LINE IT SHOW ERROR)
}
}
La solution
Si vous suivez LOGCAT, cela devrait vous dire quelque chose dans le sens de "Vous ne pouvez pas changer le texte d'un fil séparé".Lorsque vous utilisez une minuterie, vous faites juste cela.Vous devez afficher la TextView pour l'ajouter à la file d'attente de messagerie, qui exécutera ensuite le fil-ci sur le thread d'interface utilisateur. Il suffit de remplacer
tv.setText("Testing");
avec
tv.post(new Runnable() {
public void run() {
tv.setText("Testing");
}
});
devrait fonctionner bien.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow