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 :

Listview:avec radio button


Sujet :

Composants graphiques Android

  1. #1
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Par défaut Listview:avec radio button
    bonjour,
    comment je peut creé une listview avec des radio button et comment on peut choisir un seul choix puis on passe à une autre activity par click sur une boutton par exemple "valider".vraimnet je suis bloqué??

  2. #2
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 246
    Par défaut
    Ça ne doit pas être très compliqué à faire.

    Il faut juste voir que dans getView la vue est soit créé soit modifié.
    Il faudrait un listener qui est appelé à chaque fois que tu clique sur un bouton, ensuite tu sais que c'est cette item qui est sélectionné, tu avec un bouton qui sera clicked.

    Tu dois pouvoir appeler une méthode du genre notifydatasetchanged.
    Et toute ta ListView va se recréer.

    Je pense que le plus simple ce serait de faire ta classe qu'extends BaseAdapter et dans getView tu setClicked(false) ou setClicked(true) selon l'item.

    Dès qu'il y a un clique tu recréer toute ta ListView.

    Je pense que c'est la méthode la plus simple.

  3. #3
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Par défaut
    mais je suis debutant je ne comprend pas .

  4. #4
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 246
    Par défaut
    T'as liste de villes tu la récupères comment ?

    C'est une ArrayList <Ville> ?
    C'est un Cursor ?

    Suit ce tuto :
    http://mickael-lt.developpez.com/tut...iser-listview/

    C'est super simple, il faut :
    - créer une layout pour la ligne
    - créer une classe qu'extends BaseAdapter
    - implémenter la méthode getView

    Déjà remplit une ListView avec ta liste de ville.
    Une fois que t'auras fais ça ce sera quasiment fini.

  5. #5
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Par défaut
    le resultat doit etre :
    et lorsque je click sur le button il va passez à une autre activity
    et la selection doit etre unique càd une seule selection(choix)

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut
    Bonjour
    pourrai tu nous donner ton main.xml ?! pour voir comment tu fais pour afficher ta liste @+

  7. #7
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 246
    Par défaut
    Normalement ça doit juste être une ListView.

    Comment as-tu peuplé cette liste ?

    Josèphe, George et Marie ils sont dans une ArrayList à la base ?

    Tu n'as plus qu'a modifier un peu le getView et d'avoir un listener et c'est bon.

  8. #8
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    N'importe quel ListView en mode 'single selection', et surtout passer un layout ad-hoc pour les items, à savoir:
    android.R.simple_list_item_checked
    (ou essayer simple_list_item_single_choice je ne sais pas à quoi il correspond graphiquement).

    Eventuellement en changeant le background pour qu'il corresponde à votre souhait.

    Ensuite, le bouton valider va juste demander à la liste qu'elle est la selection...

  9. #9
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Par défaut
    voila mon code:
    listgouver.xml
    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="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
     
        <AbsoluteLayout
            android:layout_width="match_parent"
            android:layout_height="534dp" >
     
            <ListView
                android:id="@android:id/list"
                android:layout_width="fill_parent"
                android:layout_height="392dp"
                android:layout_y="46dp"
                android:background="@drawable/f"
                android:drawSelectorOnTop="false" >
     
            </ListView>
     
            <ImageView
                android:id="@+id/imageView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_x="0dp"
                android:layout_y="0dp"
                android:src="@drawable/gouv" />
     
            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="324dp"
                android:layout_height="73dp"
                android:layout_x="2dp"
                android:layout_y="422dp"
                android:src="@drawable/bla" />
     
     
     
     
            <Button
                android:id="@+id/vm"
                android:layout_width="163dp"
                android:layout_height="wrap_content"
                android:layout_x="-2dp"
                android:layout_y="438dp"
                android:text="Voir Mosquées"
                android:textColor="#0066FF" />
     
     
     
            <Button
                android:id="@+id/anul"
                android:layout_width="161dp"
                android:layout_height="wrap_content"
                android:layout_x="160dp"
                android:layout_y="437dp"
                android:text="Annuler"
                android:textColor="#0066FF" />
     
        </AbsoluteLayout>
     
    </LinearLayout>

    listgouver.java
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    package com.anis.telgps;
     
     
    import android.app.ListActivity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AbsListView;
    import android.widget.AbsListView.OnScrollListener;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.CheckedTextView;
    import android.widget.ListView;
    import android.widget.Toast;
     
     
    public class listgouver extends ListActivity implements
      ListView.OnScrollListener {
     private static String[] items = { "Tunis", "Ariana", "Bizerte", "Gabes",
       "Sfax", "Medenine", "Tataouine","kebelie","Gafsa","kasrine","Beja","Zaghwane","Siliana","Jendouba","elkef","bouzid","Mehdia","Nabel","Sousse","Mounastir","tozeur"};
     private int[] itemClicked = new int[25];
     private boolean selectFlag = false; // this will be changed to true if a
     private boolean firstTimeFlag = false;
     // item is clicked
     
     @Override
     public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.listgouver);
     
     
      Bundle extras = getIntent().getExtras();
      try{
      itemClicked = (int[])extras.getIntArray("clicks");
      }catch(NullPointerException e){}
      if(null == itemClicked)
      {
       itemClicked = new int[25];
       for (int i = 0; i < 25; i++) {
        itemClicked[i] = 0;
       }
      }
     
     
      setListAdapter(new ArrayAdapter(this,
        android.R.layout.simple_list_item_single_choice,
        items));
      getListView().setOnScrollListener(this);
     }
     
     private void selector(int first,int total) {
      for (int i = 0; i < total; i++) {
       View v = getListView().getChildAt(i);
       CheckedTextView check = (CheckedTextView) v;
       if(itemClicked[first+i]==1)
        check.setChecked(true);
       else
        check.setChecked(false); 
      }
     }
     
     @Override
     protected void onListItemClick(ListView l, View v, int position, long id) {
      selectFlag = true;
      CheckedTextView check = (CheckedTextView) v;
      boolean click = !check.isChecked();
      check.setChecked(click);
      if (click) {
       itemClicked[position] = 1;
      } else {
       itemClicked[position] = 0;
      } 
     }
     
     
     public void onScroll(AbsListView view, int firstVisibleItem,
       int visibleItemCount, int totalItemCount) {
     
      if(visibleItemCount == 6 && !firstTimeFlag) {
       selector(0,6);
       firstTimeFlag = true;
      }
     }
     
     
     public void onScrollStateChanged(AbsListView view, int scrollState) {
      switch (scrollState) {
      case OnScrollListener.SCROLL_STATE_IDLE:
       int first = view.getFirstVisiblePosition();
       int last = view.getLastVisiblePosition();
       int childCount = view.getChildCount();
       selector(first,childCount);
       break;
     
      case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
       break;
     
      case OnScrollListener.SCROLL_STATE_FLING:
       break;
      }  
     
     }
     
    }

  10. #10
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Déjà, tu n'as pas besoin de faire le setChecked/... normalement c'est fait tout seul...

    Ni d'ailleurs de gérer le scroll....

    Par contre rien sur l'appui des boutons ?

  11. #11
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Par défaut
    Salut
    pourquoi autant de complication ? il faut voir les choses simplement et faire les choses crescendo sans brûler les étapes
    voici un petit exemple :
    main.xml
    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
     
    <?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:orientation="vertical" >
     
        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/hello" />
     
    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/List"
        />
     
    </LinearLayout>


    et voici comment remplir ta liste avec la gestion des cliques sur chaque élément :
    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
     
    public class TestActivity extends Activity {
     
    	ListView list ;
    	final String [] items=new String[]{ "Tunis", "Ariana", "Bizerte", "Gabes",
       "Sfax", "Medenine", "Tataouine","kebelie","Gafsa","kasrine","Beja","Zaghwane","Siliana","Jendouba","elkef","bouzid","Mehdia","Nabel","Sousse","Mounastir","tozeur"};
     
    	ArrayAdapter monAdapter ;
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
     
            monAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice,items);
     
            list=(ListView)findViewById(R.id.List);
     
     
            list.setAdapter(monAdapter);
     
            //ICI LE MODE DE CHOIX
            list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
     
            //A chaque fois que tu cliques sur un élément de la liste 
            list.setOnItemClickListener(new OnItemClickListener() {
            	@Override
            	public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) 
            	{
            		  Log.i("Trop cool je clique sur : ",list.getItemAtPosition(arg2).toString())
     
                    //Doc sur la methode depuis google http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html  
            	}
     
            });
        }

    tu peux aussi ajouter un button au lieu d'utiliser onItemClick pour le déclenchement d'une nouvelle activity

  12. #12
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 246
    Par défaut
    Citation Envoyé par megaloplex Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    Purée j'étais passé à côté de ça, a moins que je l'ai oublié.

    En tout cas ça a l'air pratique

  13. #13
    Membre actif
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Par défaut
    Un grand merci le problemme est resolu

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

Discussions similaires

  1. [Forum] Affichage d'une Div avec radio button
    Par Vanessa48 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 24/01/2013, 11h12
  2. Formulaire avec radio button
    Par alaninho dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 06/12/2012, 18h47
  3. layout "complexe" avec radio buttons
    Par linotte91 dans le forum JSF
    Réponses: 5
    Dernier message: 26/08/2010, 00h08
  4. gridView avec radio button
    Par simodox dans le forum Windows Forms
    Réponses: 1
    Dernier message: 26/06/2009, 09h53

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