Autore Topic: ListView con celle castomizzate intercettare evento  (Letto 289 volte)

Offline ilDodo

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S3
  • Sistema operativo:
    Windows7
ListView con celle castomizzate intercettare evento
« il: 07 Agosto 2014, 16:01:42 CEST »
0
Ciao a tutti,
cercherò di andare subito al fulcro del problema senza fare troppi giri di parole perchè probabilmente è una cavolata  :-[ 
Se poi non dovessi essermi spiegato sufficientemente bene aggiungerò pezzi di codice !
Seguendo diverse guide e avendo già qualche base nella programmazioen android sto sviluppando un' applicazione composta da due activity principali :
la prima dove far visualizzare una ListView dinamica popolata per l'appunto dalla seconda Activity(richiamata tramite un pulsante della prima activity) dove consento all'utente di inserire vari campi e salvo il tutto in db per poi aggiungere la riga nella listview .
Fino a qui nessun problema :
ho una classe Record e il rispettivo RecordAdapter per avere le righe personalizzate e riesco corettamente ad inserirle e tramite
Codice (Java): [Seleziona]
 
 listView = (ListView)findViewById(R.id.listview);
 listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener(){...}
riesco correttamente a ottenere la riga selezionata tuttavia all'interno della mia riga customizzata ho un bottone e vorrei assegnare ad ogni bottone di ogni riga un onClickListener per far sic he mi venga richiamata la seconda activity come posso fare ?
grazie mille in anticipo e spero sia una cavolata ! se non lo fosse nella prossima risposta mettero stralci di codice della classe Record del mio Adapter etcc...
Aspetto notizie !

Offline Ohmnibus

  • Utente senior
  • ****
  • Post: 774
  • Respect: +161
    • Github
    • Google+
    • @ohmnibus
    • Mostra profilo
    • Lords of Knowledge GdR
  • Dispositivo Android:
    Huawei P9 Lite
  • Play Store ID:
    Ohmnibus
  • Sistema operativo:
    Windows 10 x64
Re:ListView con celle castomizzate intercettare evento
« Risposta #1 il: 08 Agosto 2014, 10:29:15 CEST »
0
AFAIK l'unico modo è passare un handler all'adapter in modo che questo lo assegni al bottone nella getView().

1 - nella classe adapter che usi aggiungi:
Codice (Java): [Seleziona]
private OnClickListener mButtonListener = null;

public void setOnButtonClickListener(OnClickListener buttonListener) {
  mButtonListener = buttonListener;
}

2 - Modifica la getView() aggiungendo alla fine
Codice (Java): [Seleziona]
  Button myButton = (Button)...findViewById(R.id.myButtonId); //O qualcosa del genere dipende dal tuo codice
  myButton.setOnClickListener(mButtonListener);

3 - Prima di listView.setAdapter(adapter); chiama:
Codice (Java): [Seleziona]
  adapter.setOnButtonClickListener(new View.OnClickListener() {...});
Ohmnibus
Le mie app su Play Store

È stata trovata una soluzione al tuo problema? Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato.