Plaçons-nous désormais dans l’activité qui va bénéficier du WebService :
public class Niveau2 extends AppCompatActivity {
final Context context = this;
private String url = "http://adresseInternet/nomFichier.xml";
//[…]
protected void onCreate(Bundle savedInstanceState){
//[…]
final ProgressDialog progressDialog = ProgressDialog.show(Niveau1.this,
"Connexion en cours...","En cas de longue attente vérifiez votre connexion
à internet", true, true, null);
new Thread (new Runnable()
{
public void run()
{
str[0] = httpRequest(url);
text.post(new Runnable()
{
public void run()
{
XMLParser file = new XMLParser();
Document doc = file.getDomElement(str[0]);
Element e = (Element)
doc.getElementsByTagName("name").item(0);
Element e2 = (Element)
doc.getElementsByTagName("description").item(0);
Element e3 = (Element)
doc.getElementsByTagName("question").item(0);
Element e4 = (Element)
doc.getElementsByTagName("reponse").item(0);
String nom = file.getElementValue(e);
String enonce = file.getElementValue(e2);
String cons = file.getElementValue(e3);
String rep = file.getElementValue(e4);
String inter1 = rep.substring(0, 2);
String inter2 = rep.substring(3, 5);
String inter3 = rep.substring(6, 8);
repons[0] = Integer.parseInt(inter1);
repons[1] = Integer.parseInt(inter2);
repons[2] = Integer.parseInt(inter3);
text.setText(nom);
ennonce.setText(enonce);
consigne.setText(cons);
progressDialog.dismiss();
}
});
}
}).start();
}
On stock l’adresse dans une variable.
Permet d’afficher une boite de dialogue
avec un indicateur d’activité et un message.
Le parser va découper le fichier xml et l’organiser
comme un « tableau » (chaque tag serait une
colonne et chaque niveau une ligne).
Voir le fichier xml à la fin.
Ici « nom » va donc
prendre pour valeur
« Fabrication de 3
chaises », « inter1 » 18,
« inter2 » 12, etc…
Voir le fichier xml à la fin.
« e » va donc prendre la valeur du premier
élément dont le tag est « name ». Pour
prendre l’élément « name » suivant (si on
reste dans la comparaison avec un tableau,
le tuple suivant) on écrira alors :
Element e = (Element)
doc.getElementsByTagName("name").item(1)