Bonjour,

Voici mon souci:
Dans mon activité, j'ai 2 fonctions qui contiennent chacune une thread.
1ere, va chercher des données dans ma BDD et affiche le résultat dans un spinner.
La 2eme récupère l'index du spinner et affiche un tableau de valeur.

Les 2 fonctions fonctionnent seules mais pas ensemble.

Mon programme execute mes fonctions mais n'attend pas le code retour de mon thread.
J'ai réussi à régler ce problème sur la 1ere fonctions mais lorsque je fais la meme chose sur la 2eme fonction et que je teste, mon affichage est tout noir...

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
ListeChampionnat();
while(EtatListeChampionnat=="123")//fonctionne
{
	//On attend la fin de la fonction ChargeSpinner
}
 
if (EtatListeChampionnat == "NO_ERREUR") 
{
	msg = mHandler.obtainMessage(MSG_CNF,"Chargement Spinner OK");
	mHandler.sendMessage(msg);
 
	Spinner Spinner2 = (Spinner) findViewById (R.id.spinner); 
	//Création d'un adaptateur pour spinner
	ArrayAdapter DataAdapter = new ArrayAdapter (getApplicationContext(), android.R.layout.simple_spinner_item, NomChampionnat);
	DataAdapter.setDropDownViewResource (android.R.layout.simple_spinner_dropdown_item);
	Spinner2.setAdapter(DataAdapter);
 
	String resultat = Calendrier();
 
	while(EtatChargeCalendrier=="123")//affiche un écran noir
	{
		//On attend la fin de la fonction Calendrier
	}
 
	if (resultat == "NO_ERREUR") 
	{
		msg = mHandler.obtainMessage(MSG_CNF,"Chargement Calendrier OK");
		mHandler.sendMessage(msg);
	}
}
...
public void /*String*/ ListeChampionnat(){
mProgressDialog = ProgressDialog.show(this, "Veuillez patienter","Chargement en cours...", true);
 
new Thread((new Runnable() {
	//@Override
	public void run() {
		Message msg = null;
		String progressBarData = "Chargement en cours...";
		progressBarData = "Chargement en cours...";
		msg = mHandler.obtainMessage(MSG_IND,(Object) progressBarData);
		mHandler.sendMessage(msg);
		ChargeSpinner();
	}
 
	public void ChargeSpinner() {
	...
	EtatListeChampionnat="NO_ERREUR";
	}
	})).start();
}
 
public String Calendrier()
{
	Etat="123";
	mProgressDialog = ProgressDialog.show(this, "Veuillez patienter","Connexion en cours...", true);
	final Thread t1 = new Thread(){
	public void run() {
		Message msg = null;
		String progressBarData = "Chargement en cours...";
		progressBarData = "Chargement en cours...";
		msg = mHandler.obtainMessage(MSG_IND,(Object) progressBarData);
		mHandler.sendMessage(msg);
		ChargeTableau();
 
	}
 
	public void ChargeTableau() {
	...
	EtatChargeCalendrier="NO_ERREUR";
	}
 
	};
	t1.start();
	try {
		t1.join();
	} catch (InterruptedException e) {
		e.printStackTrace();
	}
}
Comment dois-je faire?

Merci pour votre aide