Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio2:projet_depann_tout_2 [2025/01/12 19:30] – [Préparation du travail côté serveur : création d'un service web] dthevenot | sio2:projet_depann_tout_2 [2025/02/09 18:47] (Version actuelle) – [Importation des données avec le module Volley] dthevenot | ||
---|---|---|---|
Ligne 54: | Ligne 54: | ||
Afin de ne pas perdre tout le travail réalisé à cause d'une fausse manipulation, | Afin de ne pas perdre tout le travail réalisé à cause d'une fausse manipulation, | ||
+ | L' | ||
==== Autorisations ==== | ==== Autorisations ==== | ||
Il est nécessaire d' | Il est nécessaire d' | ||
Ligne 68: | Ligne 69: | ||
==== Installation de la bibliothèque Volley ==== | ==== Installation de la bibliothèque Volley ==== | ||
- | La bibliothèque Volley facilite la gestion asynchrone des appels réseaux. | + | La bibliothèque Volley facilite la gestion asynchrone des appels réseaux.https:// |
Pour l' | Pour l' | ||
- | + | < | |
+ | dependencies { | ||
+ | |||
+ | implementation(libs.appcompat) | ||
+ | implementation(libs.material) | ||
+ | implementation(libs.activity) | ||
+ | implementation(libs.constraintlayout) | ||
+ | testImplementation(libs.junit) | ||
+ | androidTestImplementation(libs.ext.junit) | ||
+ | androidTestImplementation(libs.espresso.core) | ||
+ | implementation(libs.volley) | ||
+ | } | ||
+ | </ | ||
==== Création d'une classe Importation ==== | ==== Création d'une classe Importation ==== | ||
Ligne 86: | Ligne 99: | ||
< | < | ||
// url de la requête au serveur | // url de la requête au serveur | ||
- | String url = " | + | String url = " |
+ | RequestQueue queue = Volley.newRequestQueue(this); | ||
Log.i(" | Log.i(" | ||
JSONObject jsonObject = null; // objet JSON envoyé au serveur | JSONObject jsonObject = null; // objet JSON envoyé au serveur | ||
Ligne 112: | Ligne 126: | ||
Log.i(" | Log.i(" | ||
</ | </ | ||
+ | |||
+ | **adressIPServeurWeb** est à remplacer par l' | ||
+ | |||
Après envoi de la requête au serveur, 2 écouteurs sont créés, ils seront sollicités selon le succès ou l' | Après envoi de la requête au serveur, 2 écouteurs sont créés, ils seront sollicités selon le succès ou l' | ||
L' | L' | ||
- | ===== Exploitation des données importées ===== | + | |
- | + | ||
+ | ===== Exploitation(partielle) | ||
+ | < | ||
Modifier les classes métiers Client et Intervention afin de leur ajouter l' | Modifier les classes métiers Client et Intervention afin de leur ajouter l' | ||
Ligne 126: | Ligne 145: | ||
ArrayList< | ArrayList< | ||
try { | try { | ||
- | | + | |
- | JSONArray(jsonObject.getString(" | + | |
| | ||
// Chaque objet JSON devient un objet de type Client, rangé dans la collection | // Chaque objet JSON devient un objet de type Client, rangé dans la collection | ||
Ligne 152: | Ligne 170: | ||
Afficher les données dans une listView comme la liste des articles du projet Inventaire : | Afficher les données dans une listView comme la liste des articles du projet Inventaire : | ||
- | • Ajouter une LinearLayout, | + | - Ajouter une LinearLayout, |
- | • Créer une Layout (ligne_client par exemple) avec une LinearLayout comprenant 3 TextView. | + | |
- | Pour afficher les clients, on pourra utiliser la classe SimpleAdapter | + | |
Extrait du constructeur | Extrait du constructeur | ||
(cf https:// | (cf https:// | ||
- | Les données à afficher doivent être dans une List de Maps. Il faudra donc reformater notre collection | + | |
+ | Les données à afficher doivent être dans une List de Maps. Il faudra donc reformater notre collection | ||
+ | < | ||
ArrayList< | ArrayList< | ||
ArrayList<> | ArrayList<> | ||
For (Client unClient : lesClients) { | For (Client unClient : lesClients) { | ||
- | HashMap< | + | |
- | hashMap.put(" | + | hashMap.put(" |
- | hashMap.put(" | + | hashMap.put(" |
- | hashMap.put(" | + | hashMap.put(" |
- | lesClientsHM.add(hashMap);// | + | lesClientsHM.add(hashMap);// |
} | } | ||
+ | </ | ||
L' | L' | ||
+ | < | ||
ListAdapter adapter = new SimpleAdapter( | ListAdapter adapter = new SimpleAdapter( | ||
- | ListeClientsActivity.this, | + | ListeClientsActivity.this, |
- | | + | |
- | new String[] { " | + | |
- | new int[] { R.id.tvIdC, R.id.tvNomC, | + | |
// maj listview de activity_liste_Clients | // maj listview de activity_liste_Clients | ||
ListView lvHab = (ListView) findViewById(R.id.lvHab) ; | ListView lvHab = (ListView) findViewById(R.id.lvHab) ; | ||
- | lvHab.setAdapter(adapter); | + | lvHab.setAdapter(adapter); |
+ | </ | ||
Les clients seront ensuite à intégrer dans la base de données SQLite s'ils n' | Les clients seront ensuite à intégrer dans la base de données SQLite s'ils n' | ||
+ | < | ||
+ | * **niveau 1**(5 points) : affichage des clients concernés par les rdv du jour | ||
+ | * **niveau 2**(10 points) : mise à jour des clients dans la base de données côté client(android) - contrôle avec l' | ||
+ | * **niveau 3**(15 points) : traitement des rdv avec mise à jour des interventions dans la base de données côté client(android) - contrôle avec l' | ||
+ | * **niveau 4**(20 points) : exportation des interventions sur le serveur(éventuellement nouvelles ou modifiées) | ||
+ | </ |