Lyssnare till många element i vyer

Discussion in 'Frågor, support och diskussion' started by Harper, May 19, 2015.

  1. Harper

    Harper Infant Droid Medlem

    Joined:
    Mar 2, 2014
    Messages:
    8
    Likes Received:
    0

    MINA ENHETER

    Om man har:

    Flera LinearLayout och inom varje finns ett varierande antal andra LinearLayouts som ska vara klickbara, hur gör man ?

    LL1 innehåller( e1 e2 e3 e4 e5 e6 )
    LL2 innehåller( e7 e8 e9 )
    LL3 innehåller( e10 e11 e12 e13 )

    eN är en linear layout som består av ImageView och textView.
     
  2. e7andy

    e7andy Professional Droid Hedersmedlem

    Joined:
    Oct 14, 2009
    Messages:
    2 349
    Likes Received:
    835
    Telefon:
    Huawei P10 Plus

    MINA ENHETER

    Telefon:
    Huawei P10 Plus
    Telefon 2:
    Nexus 5
    Telefon 3:
    ADP1
    Övrigt:
    LG G Watch R, ChromeCast
    Du gör på samma sätt som om du har få vyer, dvs. setOnClickListener(View.OnClickListener l)
    Det är inte särskilt många vyer du har så det blir bara 13 rader kod för att koppla upp alla.
    Alternativt så pushar du in alla i en array och loopar över den. Blir nog fler rader kod.
     
  3. Jan Seevers

    Jan Seevers Infant Droid Medlem

    Joined:
    May 23, 2015
    Messages:
    4
    Likes Received:
    5

    MINA ENHETER

    Spana in Butter Knife så slipper du en massa boilerplate när det gäller att rigga View:ar.

    Bl a så kan man lösa ditt problem ovan om du anpassar kodsnutten nedan. Se Butter Knifes doc jag länkade till. :

    @OnClick({ R.id.door1, R.id.door2, R.id.door3 })
    public void pickDoor(DoorView door) {

    ......

    }

    Då är vi nere i en rad kod! :cool:
     
    e7andy and bernard like this.