IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Algorithme Selection / Deselection RadioButton dans une listview


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2011
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 52
    Points : 60
    Points
    60
    Par défaut Algorithme Selection / Deselection RadioButton dans une listview
    bonjour,

    j'ai une listView construit avec l'item suivant :
    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>
    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
    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 : 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é

  2. #2
    Membre habitué Avatar de Willy55
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 188
    Points : 131
    Points
    131
    Par défaut
    Bonjour,

    Normalement, il parait qu'on peut ajouter un "groupe" de boutons radio et que le décochage se fait automatiquement, je n'ai jamais réussis donc j'utilise une bonne vieille méthode, qui marche a tout les coups.

    Lorsque qu'un bouton est sélectionner je dé-sélectionne tout les autres.
    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (inscriptionMr.isChecked() == true)
    {
    	inscriptionMme.setChecked(false);
    	inscriptionMlle.setChecked(false);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Selection d'un item dans une listview
    Par skunkies dans le forum Windows Forms
    Réponses: 3
    Dernier message: 22/12/2008, 16h01
  2. Réponses: 1
    Dernier message: 06/02/2008, 09h10
  3. selection multiple dans une listView
    Par 9tita dans le forum C#
    Réponses: 8
    Dernier message: 29/10/2007, 17h07
  4. selection dans une listview
    Par zmatz dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/06/2007, 22h01
  5. Selection dans une listview..
    Par remixtech dans le forum Composants VCL
    Réponses: 1
    Dernier message: 25/01/2006, 22h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo