Salut,
J'ai un problème différent de ceux exposé ci-dessus, mais comme ça concerne la connexion entre ma bdd mySQL et mon appli je me suis dit que je pouvais demander ici (si c'est pas le cas n'hésitez pas à me le dire).

Donc mon problème... En fait j'ai réussi à afficher des données de ma bdd dans une listview de mon appli, et j'aimerais changer la couleur de background des items de cette listview selon la valeur d'un des attributs de ma bdd.

Voici le résultats de ma requête lorsque j'affiche tout ma bdd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
[{"ID_ALARM":"4","ID_OBJECT":"1","ID_GROUP":"1","ID_PLACE":"1","TIME_ALARM":"2011-06-08 15:29:41","ACK_ALARM":"0","STATE_ALARM":"0","PRORITY_ALARM":"0"},
{"ID_ALARM":"5","ID_OBJECT":"2","ID_GROUP":"2","ID_PLACE":"1","TIME_ALARM":"2011-06-10 15:30:32","ACK_ALARM":"1","STATE_ALARM":"1","PRORITY_ALARM":"0"},
{"ID_ALARM":"6","ID_OBJECT":"3","ID_GROUP":"2","ID_PLACE":"2","TIME_ALARM":"2011-06-15 15:31:02","ACK_ALARM":"0","STATE_ALARM":"1","PRORITY_ALARM":"1"}]
Dans ma listview j'affiche ID_ALARM, ID_OBJECT,ID_GROUP, ID_PLACE et TIME_ALARM. Jusque là aucune problème.
Par contre j'aimerais que ma listview est un backgroung jaune si PRORITY_ALARM = 0 et rouge si ça vaut 1.

Voici la partie de mon code concernée par ce changement de couleur :
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
               try{  
                  JSONArray jArray = new JSONArray(result);  
 
                   for(int i=0;i<jArray.length();i++)
                   {  
                      JSONObject json_data = jArray.getJSONObject(i);
                       Map<String, Object> map = new HashMap<String, Object>();
                       map.put("ID_ALARM", json_data.getInt("ID_ALARM"));
                       map.put("ID_OBJECT", json_data.getInt("ID_OBJECT"));
                       map.put("ID_GROUP",json_data.getInt("ID_GROUP"));
                       map.put("ID_PLACE", json_data.getInt("ID_PLACE"));
                       map.put("TIME_ALARM",json_data.getString("TIME_ALARM"));
                       map.put("PRIORITY_ALARM",json_data.getInt("PRORITY_ALARM"));
                       priority = json_data.getInt("PRORITY_ALARM");
                       Log.i("prio" , "prio = " + priority);
                       res.add(map); 
                       Log.i("log_tag","ID_ALARM: "+json_data.getInt("ID_ALARM")+ ", ID_OBJECT: "+json_data.getInt("ID_OBJECT")+ ", priority: "+json_data.getString("PRORITY_ALARM"));  
 
                   }  
               }catch(JSONException e)
               {  
                   Log.e("log_tag", "Error parsing data " + e.toString());  
               }  
              return res;
			}
           protected void onPostExecute(List<Map<String,Object>> res)
           {
        	ListView list = (ListView)findViewById(R.id.listalarm);
        	list.setAdapter(new SimpleAdapter(BDDAlarm.this, res,R.layout.listitem, new String[]{"ID_ALARM","ID_OBJECT","ID_GROUP","ID_PLACE","TIME_ALARM" },new int[] { R.id.idAlarmTextView,R.id.idObjectTextView,R.id.idGroupTextView,R.id.idPlaceTextView,R.id.idTimeAlarm}));
            list.setOnItemClickListener(new OnItemClickListener(){
				@Override
				public void onItemClick(AdapterView<?> arg0, View v,int position, long arg3) {
					lancementDetailAlarm(position);
					System.out.println("Item click");					
				}
 
            });
            for(int i=0;i<res.size();i++)
            {
            	if ( priority[i] == 0){
            		list.setBackgroundColor(Color.YELLOW);
            	}else{
            		list.setBackgroundColor(Color.RED);
            	}
            }
           }
Comme vous le voyez, j'essai de récupérer les valeurs de PRORITY_ALARM dans un tableau priority[], mais dans le log j'ai une erreur NullPointerExecption, je pense donc que mon tableau reste vide.

J'ai essayer un mettant un entier seul au lieu d'un tableau soit priority au lieu de priority[], et là ça marche (plus ou moins).
en effet j'affiche chaque valeur de l'entier priority dans le logcat, mais quand je sors de la boucle for j'ai écrasé les 1éres valeurs et priority est égale à la derniére valeur qu'on lui a rentré (ici 1) ce qui est normal.
Donc quand je vais mon test if, tous les background deviennent rouge.

Ma question c'est pourquoi j'arrive à enregistrer la valeur de PRIORITY_ALARM dans un entier et pas dans un tableau d'entier?
Et si je n'utilise pas la bonne solution avez vous une autre idée pour m'orienter?
J'aimerais ne pas avoir à faire une nouvelle requête pour récupérer cette valeur, mais j'avoue que si je ne peux pas récupérer les valeurs dans un tableau je n'ai pt plus le choix.