Aller au contenu

Update de l'UI depuis un autre thread


ulrar

Recommended Posts

Salut,

ça fait un petit moment que j'ai pas fait de dev' Android et y a un truc que j'arrive pas à retrouver.

Comment modifier l'UI depuis un autre thread ? (En l'occurrence, faire un simple textview.append()).

J'ai relu un peu les docs, et si je ne me trompe, il faut utiliser un handler. Seulement je ne comprend pas où je dois mettre ma fonction UpdateUI(String str); ?

Quand je la met dans la définition du handler, elle n'est pas accessible plus tard, et ne sert donc à rien. Toutes les méthodes que j'ai essayé font soit crasher l'appli, soit ne font absolument rien.

Si quelqu'un avait juste un petit exemple sous la main, ça serait parfait :-).

J'essaye simplement de faire afficher à l'écran les différentes étapes de la connexion a un service (je voudrait afficher les commandes envoyées et reçu au fur et à mesure, histoire de voir où/si je me trompe).

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Il existe plus simple que le combo Thread/Handler pour rafraîchir l'UI. Ça s'appelle AsyncTask.

Sinon, grosso modo tu dois coder un truc danc ce genre :


class MyActivity extends Activity {

private final Handler handler = new Handler () {
	public void handleMessage(Message msg) {
		String str=null;
		// récupère le message
		updateUI(str);
	}	
}

private void updateUI(String str){
	// met à jour UI
}

// n'importe ou dans ton activité
private void foo (){

	new Thread(new Runnable (){
		// Fait ton traitement et crée le message a envoyer à l'UI
		Message msg=null;
		handler.sendMessage (msg);  // ou une autre méthode en fontion du besoin
	}).start();
}
}

Bon courage,

ichpa

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...