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 :

Zone Cliquable ListView Personnalisé


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Par défaut Zone Cliquable ListView Personnalisé
    Bonjour à tous,

    je rencontre un problème avec ma ListeView personnalisé.

    Je vous explique le problème:

    j'ai une ListView personnalisé, qui n'a pas de taille fixe, car les nombres d'items dans la ListView dépend du retour de la requête (BDD).

    J'ai écrit le code pour récupérer un champ de la ListView. Admettons qu'il y est 10 items dans ma ListView, je les liste ci-dessous:

    • Lapin
    • Chevre
    • Chien
    • Chat
    • Taureau
    • Poney
    • Cheval
    • Souris
    • Rat
    • Developpez


    Quand je clique sur Lapin je souhaite récupéré Lapin (effectivement ça marche), quand je clique sur Chevre je souhaite récupéré Chèvre (et là ça ne marche pas).
    Quand je clique sur les 3 premiers j'ai Lapin par exemple, ensuite à partir du quatrième (Chat) j'obtiens le deuxième (Chèvre) etc...
    C'est donc en décalé, en cliquant sur le dernier developpez j'obtiendrais Taureau par exemple.

    J'ai donc bien 10 items séparé mais au niveau de la zone cliquable j'ai l'impression qu'ils sont regroupé par paquet...

    J'espère que j'ai réussi à expliquer mon problème.

    Merci d'avance

    Vivien

  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
    Tu créer directement la ListView avec un Cursor ?
    Ou t'as une ArrayList ?

    Enfin bref, peu importe.
    Fais un onItemClickListener sur la ListView.

    dans : onItemClick(AdapterView<?> parent, View view, int position, long id)

    Fais un Log.v ou un System.out.println pour voir la position.

    Si tu clique sur chèvre ça devrait te donner 1, si tu cliques sur chien ça devrait donner 2.

    T'aurais pas mis un onClick sur le layout dans le getView de l'adapter par hasard ?

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Par défaut
    je crée de cette manière la ListView:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Création de l'Arraylist qui nous permettra de remplir la listView
    ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();
    Je viens de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(position)
    elles sont correct j'ai 0 pour Lapin, 1 Chevre etc...

  4. #4
    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
    Rah une ArrayList d'HashMap En fait c'est une solution acceptable, mais j'aime pas.

    Ben je ne comprend pas le problème alors.
    Si la position est correct, il ni a pas d'erreur.

    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listItem.get(position);
    T'as le HashMap de ta chèvre sans problème.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 345
    Par défaut
    En faite je fais ça:

    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
    //On créé l'Intent qui va nous permettre d'afficher l'autre Activity
     
    nom = (TextView)findViewById(R.id.nom);
     
    nomResto = nom.getText().toString();
     
    //On créé un objet Bundle, c'est ce qui va nous permetre d'envoyer des données à l'autre Activity
    Bundle objetbunbleBis = new Bundle();
     
    //Cela fonctionne plus ou moins comme une HashMap, on entre une clef et sa valeur en face
    objetbunbleBis.putString("ValeurResto", nomResto);
     
    //On créé l'Intent qui va nous permettre d'afficher l'autre Activity
    Intent intent = new Intent(RestoListe.this, Resto.class);
     
    //On affecte à l'Intent le Bundle que l'on a créé
    intent.putExtras(objetbunbleBis);
     
    //On démarre l'autre Activity
    startActivityForResult(intent, CODE_DE_MON_ACTIVITEBIS);
    En faite j'ai remarqué que pour tous les items présent à l'écran (sans utilisé la barre de défilement) me renvoi le premier, et après pour ceux qui ne sont plus à l'écran et où il faut utiliser la barre de défilement, me renvoi le suivant

    Exemple:

    Si Lapin, Chevre, Chien, Chat sont à l'écran le clique sur chacun d'un me renvoi Lapin et après si je clique sur Taureau ça me renvoi Chevre, si je clique sur Poney ça me renvoi Chien

  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
    Il faut faire le Bundle à l'endroit du onClick.
    Vu que ta la bonne position tu dois pouvoir faire le Bundle correctement ici.

    D'ailleurs toute la création de l'intent et le startActivity tu peux le faire dans un onItemClickListener sur la ListView.

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

Discussions similaires

  1. zone cliquable
    Par Mac__fly dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 25/06/2006, 01h02
  2. [FLASH MX] Zone cliquable
    Par david5 dans le forum Flash
    Réponses: 2
    Dernier message: 05/01/2006, 14h10
  3. [IMAGE]zone cliquable
    Par say dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/11/2005, 10h31
  4. [FLASH MX2004 ] Définir des "zones cliquables"
    Par chodaboy34 dans le forum Flash
    Réponses: 3
    Dernier message: 07/11/2004, 18h58
  5. Réponses: 3
    Dernier message: 16/08/2004, 10h57

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