Salut à tous,
Alors voilà, j'ai une listview qui contient 3 textView, et j'ai rajouté un ImageButton, voici le xml des item de la listView:
J'ai donc crée une liste d'environ 15 alarmes, et j'ai un menu avec un bouton update qui rajoute une alarme en haut de ma liste.Code:
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 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/LL_Fond" android:weightSum="1.0"> <ImageButton android:layout_width="wrap_content" android:layout_height="50px" android:src="@drawable/star" android:id="@+id/ackbutton" android:visibility="visible"/> <TextView android:id="@+id/alarme_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.3" android:layout_margin="2dip" android:textColor="#000000" android:textSize="25px"> </TextView> <TextView android:id="@+id/alarme_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.3" android:layout_margin="2dip" android:textColor="#000000" android:textSize="25px"> </TextView> <TextView android:id="@+id/alarme_groupe" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.3" android:layout_margin="2dip" android:textColor="#000000" android:textSize="25px"> </TextView> </LinearLayout>
Mon ImageButton devient invisible lorsque je clique dessus (j'ai un imagebutton à chaque ligne), mais lorsque je clique sur update, je rajoute bien une nouvelle alarme, avec un id, un type, et un groupe, et j'ai un imagebutton qui apparait sur la ligne , Le problème est le suivant :
Si par exemple j'ai rendu invisible l'imagebutton à la ligne 2, et que je créé une nouvelle alarme, alors je décale toute mes alarmes (celle à la position 2 passe à la position 3 ...) mais je ne décale pas les imagebutton, ainsi l'imagebutton à la position 2 reste invisible et celle à la position 3 reste visible.
Ma question serait comment lier mon image button à son alarme dans la liste et non pas à une position? car pour le moment c'est lier à la position dans la liste. Le problème vient-il du xml?
Ou alors faut-il que je lie chaque imagebutton à "son alarm" dans mon adapter? si c'est cette derniere solution comment faire?
J'éspère que mes explications étaient clairs, ce n'est pas facile à expliquer quand on ne voit pas le problème =) En tout cas merci d'avance pour votre aide.
--------EDIT-----------
Voici le code de mon item "update" la variable varack est un tableau d'entier qui prend la valeur 1 quand l'imagebutton est invisible sinon il faut 0.
personne ne sait comment faire pour que mon imageButton soit lier à l'item de la listview et non pas à la position dans la listView? Je n'arrive pas à m'en sortir :s je régle certain problème avec ma variable varack[] mais c'est vraiment un système D pas du tout optimisé :sCode:
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 case R.id.update:Toast.makeText(this, " alarms update", Toast.LENGTH_LONG).show(); //fonctionne mais quand on update décalage des étoiles ack ou non ack! list = (ListView)findViewById(R.id.listalarme); adapter = (AlarmeAdapter)list.getAdapter(); varack[0]=0; i = i + 1; /**---"Choix" groupe de l'alarme---*/ Random r = new Random(); int valeur = 1 + r.nextInt(4 - 1); String grpName; if (valeur == 1){ grpName = "SMS"; }else if (valeur == 2){grpName = "ESD"; }else {grpName = "MAS";} /**---"Choix" priorité de l'alarme---*/ Random r2 = new Random(); int prio = 0 + r2.nextInt(3 - 0); Log.i("random","ramdon ="+valeur); if (prio == 0){ listP.add(0, new ListAlarme("NEWalarme "+i, "type "+i, grpName, ListAlarme.defaut)); } else { listP.add(0, new ListAlarme("NEWalarme "+i, "type "+i, grpName, ListAlarme.grave)); } /**---Notification des changements---*/ adapter.notifyDataSetChanged(); break;