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 :

Récupérer des données depuis une listview


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut Récupérer des données depuis une listview
    Bonjour à tous,

    Je pense que cette question à déjà été abordé mais peut être pas de la manière dont je souhaite le faire.

    Mon application affiche une listview qui se remplie suivant un schéma que j'ai prédéfini dans un fichier xml.

    J'ai une image et 4 textView.

    Mon but est de récupérer les infos contenus dans plusieurs textView lorsque l'utilisateur sélectionne une ligne de la liste. (la ligne en question contient donc bien l'image et les 4 textView).

    Pour l'instant je parviens à voir quelle ligne est sélectionnée via arg2 mais je ne parviens pas à voir comment récupérer proprement les données contenues dans les textView de la listView en question.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    list.setOnItemClickListener(new OnItemClickListener() {
     
    			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    					long arg3) {
    				// TODO Auto-generated method stub
    				Log.i(TAG, "POSITION:" + list.getItemIdAtPosition(arg2));
     
     
     
    			}
    		});
    Mon but final étant de lancer une activity et de lui passer les données contenues dans la ligne sélectionnée de la listview.

    Si quelqu'un sait me mettre sur la piste d'une solution ça serait super

    D'avance un grand merci

  2. #2
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 250
    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 250
    Par défaut
    La méthode c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onItemClick(AdapterView<?> parent, View view, int position, long id)
    Selon comment tu as construis ton Adapter tu as la position et l'id qui te permettront de récupérer tes infos.

    Si tu connais le numéro de la ligne tu as assez d'information normalement.

    Comment construis-tu ta ListView ?

    Avec une ArrayList ?
    Un Cursor ?
    Un JSONArray ?

    ============
    Edit : ok j'avais mal lu.
    Donc tu as bien récupérer les infos qui étaient dans une ArrayList et maintenant tu veux lancer une Activity.

    Et ben c'est simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Intent intent = new Intent(CetteActivity.this, ProchaineActivity.class);
    intent.putExtra("infos", infos);
    startActivity(intent);
    T'as une ArrayList de quoi ?
    Si c'est une classe Parcelable ou Serializable tu pourras faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    intent.putExtra("infos", list.get(position));
    =========================
    Re Edit :
    J'ai encore mal lu.
    list c'est une ListView et getItemIdAtPosition c'est une méthode de ListView.

    D'où ma première question, comment tu remplit ta ListView ?

    Et au fait est-ce que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.getItemIdAtPosition(arg2)
    n'est pas équivalent à arg3 ?

    Parce qu'arg3 comme tu l'appelles c'est l'id.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    Re Edit :
    J'ai encore mal lu.
    list c'est une ListView et getItemIdAtPosition c'est une méthode de ListView.

    D'où ma première question, comment tu remplit ta ListView ?

    Et au fait est-ce que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.getItemIdAtPosition(arg2)
    n'est pas équivalent à arg3 ?

    Parce qu'arg3 comme tu l'appelles c'est l'id.
    Merci pour ta réponse rapide et désolé si je n'ai pas été clair

    je rempli ma listView comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ScreenList.add(new ScreenList(myData[1], myData[2], myData[3],myData[4], Integer.parseInt(myData[5])));
    Voici la déclaration de ma listView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ArrayList<ScreenList> ScreenList = new ArrayList<ScreenList>();
    	ListView list;
    	ScreenListAdapter SL;
    J'aurai dû le préciser dans mon premier post.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Par défaut
    En fait, tu disposes de au moins deux moyens pour le faire :

    1) Ta manière : Récupérer les TextView, les convertir, etc
    2) La manière la plus clean : Récupérer les données de ton modèle (c'est celle que je te conseille)

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    					long arg3) {
    				// TODO Auto-generated method stub
    				Log.i(TAG, "POSITION:" + list.getItemIdAtPosition(arg2));
    				String s1 = (TextView)View.findViewById(R.id.ton_textview_1);
    				String s2 = (TextView)View.findViewById(R.id.ton_textview_2);
    				String s3 = (TextView)View.findViewById(R.id.ton_textview_3);
    				String s4 = (TextView)View.findViewById(R.id.ton_textview_4);
    				//lance ton activity avec s1, s2, s3 et s4
     
    			}


    2) Je ne sais pas comment sont stockées tes données, mais imaginons qu'elles soient dans une liste ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Valeurs> valeurs;
    Tu dois donc faire comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    					long arg3) {
    				// TODO Auto-generated method stub
    				Log.i(TAG, "POSITION:" + list.getItemIdAtPosition(arg2));
    				String s1 = valeurs.get(arg2).getText1();
    				String s2 = valeurs.get(arg2).getText2();
    				String s3 = valeurs.get(arg2).getText3();
    				String s4 = valeurs.get(arg2).getText4();
    				//lance ton activity avec s1, s2, s3 et s4
     
    			}

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut
    Citation Envoyé par Simonmarky Voir le message
    En fait, tu disposes de au moins deux moyens pour le faire :

    1) Ta manière : Récupérer les TextView, les convertir, etc
    2) La manière la plus clean : Récupérer les données de ton modèle (c'est celle que je te conseille)

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    					long arg3) {
    				// TODO Auto-generated method stub
    				Log.i(TAG, "POSITION:" + list.getItemIdAtPosition(arg2));
    				String s1 = (TextView)View.findViewById(R.id.ton_textview_1);
    				String s2 = (TextView)View.findViewById(R.id.ton_textview_2);
    				String s3 = (TextView)View.findViewById(R.id.ton_textview_3);
    				String s4 = (TextView)View.findViewById(R.id.ton_textview_4);
    				//lance ton activity avec s1, s2, s3 et s4
     
    			}


    2) Je ne sais pas comment sont stockées tes données, mais imaginons qu'elles soient dans une liste ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Valeurs> valeurs;
    Tu dois donc faire comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    					long arg3) {
    				// TODO Auto-generated method stub
    				Log.i(TAG, "POSITION:" + list.getItemIdAtPosition(arg2));
    				String s1 = valeurs.get(arg2).getText1();
    				String s2 = valeurs.get(arg2).getText2();
    				String s3 = valeurs.get(arg2).getText3();
    				String s4 = valeurs.get(arg2).getText4();
    				//lance ton activity avec s1, s2, s3 et s4
     
    			}
    Merci pour ta réponse rapide.

    Je vais tester pour voir

  6. #6
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 250
    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 250
    Par défaut
    Donc comme je disais si t'as classe ScreenList est Parcelable ou Serializable tu peux l'envoyez directement à l'autre Activity.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut
    Citation Envoyé par thierrybenji Voir le message
    Donc comme je disais si t'as classe ScreenList est Parcelable ou Serializable tu peux l'envoyez directement à l'autre Activity.
    Ça je ne sais pas encore bien comment je vais le faire.

    Mais je vais chercher

    Au pire je reviendrai vers toi si j'ai un soucis.

  8. #8
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 250
    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 250
    Par défaut
    En gros tu va dans ta classe t'ajoute implements Serializable et c'est fini.
    Enfin je crois.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 66
    Par défaut
    Citation Envoyé par Simonmarky Voir le message
    2) Je ne sais pas comment sont stockées tes données, mais imaginons qu'elles soient dans une liste ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ArrayList<Valeurs> valeurs;
    Tu dois donc faire comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    					long arg3) {
    				// TODO Auto-generated method stub
    				Log.i(TAG, "POSITION:" + list.getItemIdAtPosition(arg2));
    				String s1 = valeurs.get(arg2).getText1();
    				String s2 = valeurs.get(arg2).getText2();
    				String s3 = valeurs.get(arg2).getText3();
    				String s4 = valeurs.get(arg2).getText4();
    				//lance ton activity avec s1, s2, s3 et s4
     
    			}
    Cette méthode fonctionne parfaitement pour mon projet.

    Un grand merci à vous deux pour m'avoir aider.

    A bientôt

Discussions similaires

  1. Récupérer des données depuis une BDD sur un serveur de mon site web
    Par kookitanou dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 30/10/2012, 10h52
  2. [MySQL] récupérer des données depuis une table mysql
    Par godbless dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 23/10/2008, 13h04
  3. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22
  4. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 19h18
  5. [Excel] Récupérer des données d'une base Access
    Par FoxDeltaSierra dans le forum Excel
    Réponses: 8
    Dernier message: 03/09/2005, 10h22

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