Algorithme Selection / Deselection RadioButton dans une listview
bonjour,
j'ai une listView construit avec l'item suivant :
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 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> |
Je me suis créer un Adapteur comme ceci :
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 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;
}
} |
Mona adpater :
Je vous présente l'appel à mon adapter de mon activité :
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 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é