Jump to content

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.

Link to comment
Share on other 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

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...