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

Android Discussion :

Récupérer et traiter les objets checkés de ma liste


Sujet :

Android

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Récupérer et traiter les objets checkés de ma liste
    Bonjour,

    Je dispose d'une ListView dans laquelle j'ai plusieurs éléments.
    J'aimerai récupérer les éléments qui sont sélectionnés afin de les stocker pour les traiter ultérieurement.

    En tant que débutant, je ne vois pas trop par où m'y prendre...

    Voici l'apparence de ma liste et le code Java qui va avec :


    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
    public class PizzaActivity extends DashboardActivity {
        /** Called when the activity is first created. */
        // HashMap arraList qui prend les objets
        private ArrayList <HashMap<String, Object>> myIng;
        private static final String INGREDIENT = "ingnom";
        private static final String PRIX = "ingprix";
        private static final String IMAGE = "iconfromraw";
     
     
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_f2);
            ListView listView = (ListView)findViewById(R.id.list);
     
            myIng = new ArrayList<HashMap<String,Object>>();
            HashMap<String, Object> hm;
     
            // Créée une nouvelle HashMap et définis ses élements
            hm = new HashMap<String, Object>();
            hm.put(IMAGE, R.drawable.mozza);
            hm.put(INGREDIENT, "Mozzarella");
            hm.put(PRIX, "Prix : 0.60€");
            // Ajoute la HashMap créée à la liste
            myIng.add(hm);
     
            hm = new HashMap<String, Object>();
            hm.put(IMAGE, R.drawable.emmental);
            hm.put(INGREDIENT, "Emmental");
            hm.put(PRIX, "Prix : 0.50€");
     
            myIng.add(hm);
     
            hm = new HashMap<String, Object>();
            hm.put(INGREDIENT, "Chèvre");
            hm.put(PRIX, "Prix : 0.75€");
            hm.put(IMAGE, R.drawable.chevre);
     
            myIng.add(hm);
     
            hm = new HashMap<String, Object>();
            hm.put(INGREDIENT, "Roquefort");
            hm.put(PRIX, "Prix : 0.75€");
            hm.put(IMAGE, R.drawable.roquefort);
     
            myIng.add(hm);
     
           // Définis un SimpleAdapter et lie les valeurs aux lignes de la vue view R.layout.listview
           SimpleAdapter adapter = new SimpleAdapter(this, myIng, R.layout.listview,
                    new String[]{IMAGE,INGREDIENT,PRIX}, new int[]{R.id.img,R.id.text1, R.id.text2});
     
            listView.setAdapter(adapter);
     
            listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        } 
     
    }
    Tout conseil est le bienvenu !

    Merci d'avance

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Personne ?

    J'ai essayé quelque chose, mais j'obtiens aucun résultat... Peu importe l'état des items de la liste, le retour fait comme si aucun n'était coché.

    Voici ce que j'ai fais :

    J'ai rajouté un bouton et un ClickListener à la fin du OnCreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            // Récupère le bouton
    	Button btnTest = (Button) findViewById(R.id.btnTest);
    	// Réagit aux clics sur le bouton
    	btnTest.setOnClickListener(new OnClickListener() {
    		public void onClick(View v) {
    			Toast.makeText(getApplicationContext(),
    					"Vous avez cliqué sur le bouton", Toast.LENGTH_SHORT).show();
    			// Exécute la fonction de trairement
    			TestFunction();
    		}
    	});
    Puis j'ai ajouté une fonction qui s'exécute au clic sur le bouton, censé récupérer les objets cochés et les afficher dans un TextView (ou affiche "rien" si l'objet n'est pas coché).
    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
    	public void TestFunction()
    	{
     
    		String savedItems = "";
     
    		int count = this.listView.getAdapter().getCount();
     
    		for (int i = 0; i < count; i++) {
     
    			if (this.listView.isItemChecked(i)) {
    				if (savedItems.length() > 0) {
    					savedItems += ", " + this.listView.getItemAtPosition(i);
    				} else {
    					savedItems += this.listView.getItemAtPosition(i);
    				}
    			}
    			else
    				savedItems += ", rien";
     
    		}
    		TextView textMessage = (TextView)findViewById(R.id.testbox);
    	    textMessage.setText(savedItems);
    	}
    Le problème, c'est que peu importe le nombre d'objets cochés, le résultat est toujours "rien, rien, rien, rien".

    Quelqu'un saurait-il pourquoi ?

    Merci d'avance.

  3. #3
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    C'est quoi cette fonction ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.listView.isItemChecked(i)
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    Je l'ai vue dans le code de quelqu'un sur un forum, qui disait qu'il avait réussi en utilisant cette fonction.
    Au vu de mon résultat, c'est cette ligne qui renvoie toujours "false", donc ça vient peut-être de la fonction qui n'est pas bonne..?

  5. #5
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Au vu de mon résultat, c'est cette ligne qui renvoie toujours "false", donc ça vient peut-être de la fonction qui n'est pas bonne..?
    Si elle existe

    http://developer.android.com/reference/android/widget/AbsListView.html#isItemChecked(int)


    Combien d'élément te retourne cette fonction ?
    http://developer.android.com/referen...kedItemCount()
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. récupérer et traiter les valeur de plusieur checkbox
    Par artichaudd dans le forum Langage
    Réponses: 11
    Dernier message: 26/12/2011, 18h23
  2. Récupérer les objets d'un ArrayList
    Par DiverSIG dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 22/12/2008, 10h55
  3. Réponses: 3
    Dernier message: 13/06/2008, 20h33
  4. Réponses: 2
    Dernier message: 31/10/2007, 14h26
  5. Réponses: 5
    Dernier message: 07/07/2004, 15h13

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