bonjour,
j'ai une listView construit avec l'item suivant :
Je me suis créer un Adapteur comme ceci :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62 <?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"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:padding="20px"/> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:paddingLeft="10px" android:layout_weight="1" > <TextView android:layout_width="fill_parent" android:textSize="16px" android:textStyle="bold" android:id="@+id/immatriculation" android:layout_height="wrap_content" android:text="Immatriculation"/> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/marquevehicule" android:text="marque du véhicule"/> <TextView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/couleurvehicule" android:text="couleur du véhicule"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="taille du véhicule" android:id="@+id/taillevehicule"></TextView> </LinearLayout> <CheckedTextView android:id="@+id/checkstate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="6dip" android:layout_alignParentRight="true" android:background="#00000000" android:focusable="false" android:clickable="false" android:checked="false" android:checkMark="@android:drawable/btn_radio" android:layout_centerVertical="true"/> </LinearLayout> </LinearLayout>
Mona adpater :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 private class configureAdapteur extends ArrayAdapter<ConfigureItem> { public configureAdapteur() { super(getApplicationContext(), R.layout.configurevehiculeitem, listItem_retravail); } private class ViewHolder { protected ImageView Car; protected TextView Immat; protected TextView Marq; protected TextView couleur; protected TextView Taille; protected CheckedTextView checkbox; } @Override public View getView(int position, View convertView, ViewGroup parent) { View view = null; if (convertView == null) { LayoutInflater inflator = getLayoutInflater(); view = inflator.inflate(R.layout.configurevehiculeitem, null); final ViewHolder viewHolder = new ViewHolder(); viewHolder.Car = (ImageView) view.findViewById(R.id.img); viewHolder.Immat = (TextView) view.findViewById(R.id.immatriculation); viewHolder.couleur = (TextView) view.findViewById(R.id.couleurvehicule); viewHolder.Marq = (TextView) view.findViewById(R.id.marquevehicule); viewHolder.Taille = (TextView) view.findViewById(R.id.taillevehicule); viewHolder.checkbox = (CheckedTextView) view.findViewById(R.id.checkstate); viewHolder.checkbox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ConfigureItem element = (ConfigureItem) viewHolder.checkbox .getTag(); element.setSelected(((CheckedTextView) v).isChecked()); Matricule=element.getName(); Log.i("Le CLIC","=========== Je clic sur le point :"+Matricule); } }); view.setTag(viewHolder); viewHolder.checkbox.setTag(listItem_retravail.get(position)); } else { view = convertView; ((ViewHolder) view.getTag()).checkbox.setTag(listItem_retravail.get(position)); } ViewHolder holder = (ViewHolder) view.getTag(); holder.Immat.setText(listItem_retravail.get(position).getName()); holder.couleur.setText(listItem_retravail.get(position).getCouleur()); holder.Marq.setText(listItem_retravail.get(position).getMarque()); holder.Taille.setText(listItem_retravail.get(position).getTaille()); holder.checkbox.setChecked(listItem_retravail.get(position).isSelected()); holder.Car.setImageBitmap(listItem_retravail.get(position).getPhoto()); return view; } }
Je vous présente l'appel à mon adapter de mon activité :
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84 public class Configuration_voiture extends Activity implements View.OnClickListener { private ListView maListViewPerso; private RequeteSeTrouver ParamBd; private TextView CarDefaut; private String Matricule=null; private ArrayAdapter<ConfigureItem> adapter; static final int CODE_DETRUIRE=20; static final int CODE_CREER=30; private ArrayList<ConfigureItem> listItem_retravail; @SuppressWarnings("null") @Override public void onCreate(Bundle savedInstanceState) { FileInputStream ins; BufferedInputStream buf; super.onCreate(savedInstanceState); setContentView(R.layout.configvoiture); Button boutonCreer = (Button) findViewById(R.id.creer); Button boutonDetruire = (Button) findViewById(R.id.delete); Button retourAccueil = (Button) findViewById(R.id.retourpreced); CarDefaut =(TextView) findViewById(R.id.cardefaut); retourAccueil.setOnClickListener(this); boutonCreer.setOnClickListener(this); boutonDetruire.setOnClickListener(this); ParamBd = new RequeteSeTrouver(this); ParamBd.open(); maListViewPerso = (ListView) findViewById(R.id.listviewvehicule); // Création de la ArrayList qui nous permettra de remplire la listView ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String, Object>>(); listItem_retravail = new ArrayList<ConfigureItem>(); // on récupère de la base de données l'ensemble des éléments de la base de données try { listItem=ParamBd.get_mon_vehiculeItem(); if (listItem == null) { Log.e("Configuration_voiture", " le Paramétrage Base de données N'est pas Fait"); finish(); } // nous allons retravaillé la MAP car la photo n'est qu'une URL for(HashMap<String, Object> map : listItem ) { if(map !=null) { ConfigureItem Configitem = new ConfigureItem(); Bitmap ImageTravail=new ResizeImage(map.get("PHOTO_VEHICULE").toString()).setTailleImage(100, 100); Configitem.setPhoto(ImageTravail); Configitem.setName(map.get("N_IMMAT").toString()); Configitem.setMarque(map.get("MARQUE_VEHICULE").toString()+ " - " + map.get("TYPE_VEHICULE").toString()); Configitem.setCouleur( map.get("COULEUR").toString()); Configitem.setTaille(map.get("LONGUEUR_VEHICULE").toString()+" X " + map.get("LARGEUR_VEHICULE").toString()); if((Short)map.get("DEFAUT") == 1) { CarDefaut.setText(map.get("N_IMMAT").toString()); Configitem.setSelected(true); } listItem_retravail.add(Configitem); } } adapter = new configureAdapteur(); maListViewPerso.setChoiceMode(ListView.CHOICE_MODE_SINGLE); maListViewPerso.setAdapter(adapter);
Quand je Clic sur la CheckedTextView qui est en réalité un radioButton celui-ci passe au Vert mais l'autre qui était selectionné ne se décoche pas.
quel est l'algo. de getView avec un listView comportant des radioButtons qui quand je selectionne un radiobutton je déselectionne celui qui était selectionné ?
Pourquoi cela ne fonctionne pas,
Merci de m'aider car je suis totalement Bloqué
Partager