Autore Topic: Evento onClick nei buttons di una ListView  (Letto 1822 volte)

Offline stefano@BL

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
    • HappyBasket - Offerte speciali
  • Dispositivo Android:
    Wildfire
Evento onClick nei buttons di una ListView
« il: 13 Ottobre 2011, 15:06:47 CEST »
0
Ho creato un adapter che carica i dati da un database e li mostra in una listview; nel file xml per la visualizzazione dei record ho inserito alcuni dei campi principali.

Fin qui tutto bene, ora però vorrei inserire anche un bottone per lanciare delle azioni associate al record relativo; sono riuscito a far visualizzare un Button per ogni item della lista... però ora come devo fare per associare un evento sul click del pulsante? Non capisco come ottenere il riferimento al record in modo dinamico.

grazie
ciao
stefano
La mia app Android: HappyBasket http://happy-basket.appspot.com , crea le liste della spesa, inserisci i prezzi delle offerte speciali e verifica se sono davvero speciali

Offline stefano@BL

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
    • HappyBasket - Offerte speciali
  • Dispositivo Android:
    Wildfire
Re:Evento onClick nei buttons di una ListView
« Risposta #1 il: 17 Ottobre 2011, 22:32:38 CEST »
0
Provo a riproporre la questione cercando di spiegarmi meglio nella speranza che qualcuno riesca a darmi qualche indicazione (scusate se insisto ma mi sembra strano che nessuno abbia mai dovuto affrontare questo problema, per cui suppongo di non essermi espresso in modo molto chiaro  ;-) ).


Avendo una listview all'interno di un ListAdapter che visualizza i record caricati da un database, come faccio a inserire dei pulsanti per ogni record ed intercettare l'evento onClick su questi pulsanti? Sono riuscito ad inserirli nel layout con questo XML:

Codice (XML): [Seleziona]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_height="wrap_content" android:orientation="vertical"
 android:id="@+id/bagRowLayout" android:layout_width="fill_parent">

  <TextView android:id="@+id/bagNome" android:text="Nome" android:layout_height="fill_parent" android:layout_width="fill_parent" android:textColor="#0000ff"  />

  <TextView android:layout_height="wrap_content" android:id="@+id/bagNote" android:text="Note" android:layout_width="fill_parent"  />

  <Button android:id="@+id/BtnModifica" android:text="modifica" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
  <Button android:id="@+id/BtnCancella" android:text="cancella" android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>

</LinearLayout>

Ma poi non riesco nella mia classe ListActivity associata a gestire l'evento onClick.
Ho provato con questo codice inserito nel metodo onCreate della mia classe ListActivity:

Codice (Java): [Seleziona]
    [...]
    adapter = new SimpleCursorAdapter(this, R.layout.list_item, cursor, FROMS, TOS);

    setListAdapter(adapter);

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
        Log.i(TAG_LOG, ">>>" + view);

        [...]
    });

ma l'onClick è quello sugli item della lista, non sui pulsanti.

Grazie a chi mi fornirà qualche suggerimento!
La mia app Android: HappyBasket http://happy-basket.appspot.com , crea le liste della spesa, inserisci i prezzi delle offerte speciali e verifica se sono davvero speciali

Offline stefano@BL

  • Nuovo arrivato
  • *
  • Post: 17
  • Respect: 0
    • Mostra profilo
    • HappyBasket - Offerte speciali
  • Dispositivo Android:
    Wildfire
Re:Evento onClick nei buttons di una ListView
« Risposta #2 il: 17 Ottobre 2011, 23:42:12 CEST »
0
Questo mi sa che fa al caso mio: http://www.anddev.it/index.php/topic,1087.0.html
La mia app Android: HappyBasket http://happy-basket.appspot.com , crea le liste della spesa, inserisci i prezzi delle offerte speciali e verifica se sono davvero speciali