Bonjour ,
Je vais essayer d'aller directement à l'essentiel.
Je suis dans le cadre d'une appli qui se connecte à une bdd mysql distante.
Voici donc ma variable globale :
Le but du jeu, c'est que mon messageServeur soit valorisé avec ... ben le message renvoyé par le serveur distant , et ensuite que ce message soit envoyé à l'utilisateur via un Toast.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 // message de retour du serveur à destination de l'utilisateur : public static String messageServeur = "";
Donc, j'ai une classe accesDistant avec une méthode processFinish, qui me récupère la réponse du serveur (enfin de ma page PHP liée.. whatever). Donc je me dit "facile, je valorise mon messageServeur avec le retour" :
Et après, sur mon activity, quand mon user clic sur le bouton "transférer", je lui envoie un Toast avec mon messageServeur :
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 public void processFinish(String output) { // pour vérification, affiche le contenu du retour dans la console Log.d("serveur", "************" + output); Global.messageServeur = ""; // découpage du message reçu String[] message = output.split("%"); // contrôle si le retour est correct (au moins 2 cases) if(message.length>1){ Global.messageServeur = message[1]; if(message[0].equals("Echec")){ Log.d("Echec","****************"+message[1]); //Global.messageServeur = message[1]; }else if(message[0].equals("Authentification_OK")){ Log.d("Authentification","****************"+message[1]); //Global.messageServeur = message[1]; }else if(message[0].equals("Erreur !")){ Log.d("Erreur !","****************"+message[1]); } } }
Sauf que ... ça ne veut pas marcher comme ça.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 AccesDistant accesDistant = new AccesDistant(); accesDistant.envoi("enreg", convertToJSONArray(Global.listFraisMois, login, mdp)); // envoi à l'utilisateur le message du serveur via un Toast Toast.makeText(ConnexionActivity.this, Global.messageServeur, Toast.LENGTH_LONG).show();
Pour une raison que je ne comprends pas, ma variable messageServeur part bien de Global, puis elle va dans l'activity (dans le Toast) et ensuite seulement elle est valorisée avec le retour du serveur.
C'est ballot, avouez parce que du coup, elle a toujours un message "de retard".
Comment je fait pour lui expliquer que dans le Toast de l'activity, il faut qu'elle soit d'abord valorisée dans mon accesDistant ?
Y a un moyen de lui flécher le parcours ?
D'avance merci
Partager