Partage
  • Partager sur Facebook
  • Partager sur Twitter

Listener d'une ImageView dans une ListView Android

Retrouver la position de l'item de la ListView via le clic sur l'image

Sujet résolu
    14 septembre 2013 à 21:06:25

    Bonjour à tous!

    Après avoir passé les deux derniers jours à chercher en vain, je viens ici en espérant trouver du secours. :)



    En effet, j'ai un problème:

     J'ai une Activity contenant une simple ListView, dans cette ListeView il y a pour chaque item, 2 images et 2 textes, voici un aperçu:

    Donc avec un petit style à la Google avec la police Robotto etc mais ça c'est pas ce qui importe.

    Ce qui importe est que j'aimerai récupérer la position de l'item lorsque je clique sur l'image à droite, les 3 petits carrés. C'est à dire, Lorsque je clique sur cette image dans l'arrêt "Roussillon", on me donne la valeur 0, 1 pour l'arrêt "Gascogne" etc...

    Quand je pourrai récupérer la position, ça sera pour ouvrir un ContextMenu, pour le moment tout est prêt, sauf la récupération de la position.

    Voici mon code:

    	public void setOptionClicked(View v) {
    		registerForContextMenu(v);
    		
    		positionClicked = v.getId();//Variable de la position de l'item de la LV, qui est incorrect pour le moment...
    		Log.v("POSITION", "" + positionClicked);
    		openContextMenu(v);
    	}

    Le code est appelé par le fichier xml, dans l'imageview de l'image au 3 carrés j'ai ajouté ceci: "android:onClick="setOptionClicked"". Voilà, je ne peux être plus précis je pense.

    Merci par avance de votre aide, je vous en serais très reconnaissant :) Et bonne soirée à vous qui ne faites que lire :)

    -
    Edité par Valentin Quevit 14 septembre 2013 à 21:07:48

    • Partager sur Facebook
    • Partager sur Twitter
      15 septembre 2013 à 2:11:02

      Après recherches, cela fonctionne:

      public void setOptionClicked(View v) {
      		registerForContextMenu(v);
      		
      		ListView lv = (ListView)v.getParent().getParent();
      		positionClicked = lv.getPositionForView(v);
              
      		openContextMenu(v);
      	}

      Je fais 2x le .getParent() car l'image est dans un LinearLayout qui lui est dans la ListView :)

      • Partager sur Facebook
      • Partager sur Twitter

      Listener d'une ImageView dans une ListView Android

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown