Autore Topic: ListView e Button  (Letto 563 volte)

Offline supporto81

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
ListView e Button
« il: 02 Agosto 2011, 18:25:53 CEST »
0
Ciao a tutti,
vi ringrazio anticipatamente per l'aiuto che saprete fornirmi e chiedo scusa nel caso avessi sbagliato sezione per postare la seguente problematica.

Ho una ListActivity che continene una ListView.

La ListView è composta da ListItem che si basano su di un layout che comprende i seguenti elementi:

1.LinearLayout
      1.1 Button
      1.2 WebView

La ListView è popolata mediante la funzione:
      setListAdapter(new CustomAdapter(this, c));

dove il CustomUdapter implementa i seguenti due metodi:
Codice: [Seleziona]
        @Override
        public void bindView(View view, Context context, Cursor cursor) {
                // TODO Auto-generated method stub
                ((WebView) view.findViewById(R.id.webView1)).loadData(cursor.getString(1),"text/html", "utf-8");               
        }

        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
                // TODO Auto-generated method stub
                return LayoutInflater.from(context).inflate(R.layout.customlist_item, null);
        }

Ora la mia domanda è la seguente:

Come gestisco della ListActivity il click del button afferente al list item?
Come identifico il list item relativo al button cliccato?

Ciao e grazie




Offline Andre

  • Utente junior
  • **
  • Post: 62
  • Respect: +1
    • Mostra profilo
Re:ListView e Button
« Risposta #1 il: 02 Agosto 2011, 19:20:59 CEST »
0
lv1.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {

... qui ci metti i tuoi metodi.

}


Offline supporto81

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
Re:ListView e Button
« Risposta #2 il: 02 Agosto 2011, 19:31:51 CEST »
0
Ciao Andre,
ti ringrazio per la segnalazione, ma credo che la tua proposta non sia la soluzione corretta in quanto cosi intercetto il click sul list_item e non sul button del list_item.
Sbaglio?

Offline supporto81

  • Nuovo arrivato
  • *
  • Post: 15
  • Respect: 0
    • Mostra profilo
Re:ListView e Button
« Risposta #3 il: 02 Agosto 2011, 23:41:41 CEST »
0
Ma qualcuno ritiene sbagliata proprio la gestione che ho utilizzato, ovvero utilizzare il button in un list item?
Non riesco a gestire l'evento del click sul button del list item. In particolare non so come interpretare il button di quale list item è stato cliccato

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:ListView e Button
« Risposta #4 il: 03 Agosto 2011, 14:53:02 CEST »
0
Ci sono vari metodi. Un metodo potrebbe essere trovare in quale posizione sia il pulsante cliccato, un altro è usare il metodo setTag(Object oggetto).
Primo metodo:
Codice (Java): [Seleziona]
 (...) onClick(View v) {
          int position = listView.getPositionForView(v);
}
Secondo metodo:
Nell'adapter, nel metodo di creazione di ogni riga, associ l'oggetto che ti serve al pulsante con il metodo pulsante.setTag(position). Nell'onclick poi scriverai:
Codice (Java): [Seleziona]
(...) onClick(View v) {
           int position = (Integer) v.getTag();
}

Magari questo metodo sembra più complicato, ma è più flessibile, in quanto puoi associare qualsiasi cosa al pulsante.