Autore Topic: GroupView dentro una ListView  (Letto 545 volte)

Offline solaris

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus One
  • Sistema operativo:
    Windows XP
GroupView dentro una ListView
« il: 11 Settembre 2011, 23:14:42 CEST »
0
Se ho una GroupView custom che viene istanziata aumaticamente (ad esempio da un ArrayAdapter perchè la sto usando come elemento di riga di una ListView), qual'è il metodo corretto di cui fare override per poter eseguire delle operazioni tra i componenti, ad esempio registare come listener di un bottone della group view un'altro elemento della groupview?


Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:GroupView dentro una ListView
« Risposta #1 il: 12 Settembre 2011, 09:52:29 CEST »
0
La classe ViewGroup e derivate hanno il metodo getChildAt(position) e indexOfChild(child) che ti permettono rispettivamente di trovare la view nella posizione position, e la posizione di una view che passi nel parametro child.
Esempio: hai una listview (ma vale anche per gridview, gallery ecc), e in ogni riga c'è un pulsante e vuoi che, una volta premuto il pulsante della prima riga, si evidenzi la terza riga. Parti col settare, tramite xml, l'attributo onClick del pulsante. Nel codice dell'activity, nel metodo che crei per gestire l'onClick (nomeMetodo(View v) che nell'xml è android:onClick="nomeMetodo"), controlli di che riga è il pulsante con indexOfChild(v.getParent), e, se è 1, modifichi la terza riga usando il getChildAt(3).setBackground(...).