Klicka på knappen i listan?

Diskussion i 'Frågor, support och diskussion' startad av blueWater, 25 jan 2012.

  1. blueWater

    blueWater Baby Droid Medlem

    Blev medlem:
    24 dec 2009
    Inlägg:
    29
    Mottagna gillanden:
    0

    MINA ENHETER

    Jag har en lista , där jag populerade varje rad med en knapp. Jag har nu skrivit en hel del kod på vad som skall hända då man klickar på raden. Och allting fungerr bra. Men det är egentligen knappen som skall reagera inte raden...
    Efter att ha kollat runt på nätet, hittade jag att knappens focus måste vara "false" för att onItemClick() metoden skall fungera alls (jag läste att detta var en bugg, som inte har fixats än). Med andra ord, om knappen är i focus, kan jag inte använda mig av onItemClick() och allt det inbakade, och redan skrivna koden av mig.. hur skall jag då göra för att behålla koden jag skrev, istället för att skriva om en massa kod?
    Finns det sätt att få en knapp clickable, och att den samtidigt avläser vilken rad det handlar om..
    Knapparna populeras dynamiskt som objekt, med bild på, från xml-filen.

    Någon som har en bra länk? Någon som vet om det stämmer att detta är en bugg? Finns det workarounds?
     
  2. ozp

    ozp Teen Droid Medlem

    Blev medlem:
    6 maj 2010
    Inlägg:
    250
    Mottagna gillanden:
    31

    MINA ENHETER

    Om du vänder dig till Donut och senare kan du göra så här

    Lägg till detta i knappens layout.

    Kod:
    android:onClick="metodnamn"
    android:focusable="false"
    
    I din activity som visar listan lägger du till följande

    Kod:
    public void metodnamn(View view) {
        final int position = getListView().getPositionForView((View) view.getParent());
    }
    
    Efter du har fått ut positionen lägger du till koden för vad du vill göra när man har tryckt på knappen.
     
  3. Reconnnn

    Reconnnn Professional Droid Hedersmedlem

    Blev medlem:
    9 mar 2010
    Inlägg:
    2 809
    Mottagna gillanden:
    263

    MINA ENHETER

    Flyttad till Apputveckling.