Bonjour à tous!
J'essaye depuis deux jours d'utiliser une hashmap avec ma lisview.
Je m'explique un peu plus:
Je suis entrain de développer une application qui permet de faire l'appel dans un cours. Donc j'ai une base de donnée mysql à partir de laquelle je récupère le nom et l'id de chaque élève. Le tout est encodé en Json par PHP et j'ai une méthode java qui parse le Json, et mets dans une hashmap l'id (int) et le nom de chaque élève et renvoie la dite hasmap.
Le soucis c'est que j'aimerai afficher une liste des noms d'élève (avec checkboxs) SANS les id (d'où la nécessité d'utiliser une hashmap).
Autant j'avais dans un premier temps utilisé un arraylist, ce qui marchait très bien, autant là, je n'ai aucune idée de comment utiliser le setadapter avec une hasmap...
Voila ma fonction pour récupérer le code à partir du serveur:
ainsi que ma fonction pour parser le résultat:
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 private String getPage() { String str = "***"; try { HttpClient hc = new DefaultHttpClient(); HttpPost post = new HttpPost("http://192.168.1.83/pouet.php"); List<NameValuePair> pairs = new ArrayList<NameValuePair>(); post.setEntity(new UrlEncodedFormEntity(pairs)); HttpResponse rp = hc.execute(post); if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { str = EntityUtils.toString(rp.getEntity()); } }catch(IOException e){ e.printStackTrace(); } return str; }
ensuite je fais ça:
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 public ArrayList<String> sampleJsonParser(String jsonString) { ArrayList <String> arrList = new ArrayList<String>(); try { Context context = getApplicationContext(); JSONObject jObject = new JSONObject(jsonString); for (int i = 0; i < jObject.length(); i++) { JSONObject jo = jObject.getJSONObject(String.valueOf(i)); String nom = jo.getString("nom_eleve"); arrList.add(nom); } } catch (JSONException e) { e.printStackTrace(); } return arrList; }
voila, donc ça ça marche, maintenant comment adapter le "setadapter" pour utiliser une hashmap?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 lv1 = (ListView) findViewById(R.id.listView1); cp=getPage();; lv1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice , sampleJsonParser(cp))); lv1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Merci d'avance pour toutes vos réponse![]()
Partager