Autore Topic: Gestione eventi sugli item di ListView  (Letto 2101 volte)

Offline Sandra

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Gestione eventi sugli item di ListView
« il: 15 Giugno 2010, 08:32:08 CEST »
0
Ciao!
Ho creato una ListView seguendo un tutorial (fatto benissimo!!) trovato su questo forum ma sono in difficoltà per la gestione degli eventi.
Gli item della mia lista sono formati da una TextView a da un Button:

Codice (XML): [Seleziona]
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:orientation="horizontal">
 
  <TextView android:text="@string/tvGame"
    android:id="@+id/tvGame"
    android:layout_width="@dimen/rowListGameWidth"
    android:layout_height="wrap_content"
    android:clickable="true">
  </TextView>
       
  <Button android:text="@string/butMinus"
    android:id="@+id/butDeleteGame"
    android:layout_width="wrap_content"
   android:layout_height="wrap_content">
  </Button>
</LinearLayout>

La ListView l'ho creata semplicemente così:
Codice (XML): [Seleziona]
<ListView android:id="@+id/lvGames"
   android:layout_width="fill_parent"
   android:layout_height="100px"
   android:clickable="true"
   android:longClickable="true">
</ListView>

Vorrei poter gestire il click sulla TextView per far apparire delle informazioni e sul bottone per eliminare l'item.
Ho provato con setOnItemClickListener() sulla lista ma non reagisce. Funziona se faccio setOnTouchListener() ma in questo modo non posso sapere quale item é stato cliccato.

Per info la lista viene riempita all'interno di una classe che estende Activity, con dati presi da un db e utilizzando un SimpleAdapter.

Avete qualche consiglio?
Grazie mille!!
« Ultima modifica: 25 Giugno 2010, 13:19:22 CEST da Qlimax »

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Gestione eventi sugli item di ListView
« Risposta #1 il: 15 Giugno 2010, 08:40:17 CEST »
0
Intanto ho spostato nella sezione corretta. Avevi messo in Tutorials ;)
Postate il LogCat LogCat LogCat LogCat LogCat

Offline Agafi

  • Utente normale
  • ***
  • Post: 173
  • Respect: +10
    • svetlana-tomasevschi-perini
    • agafist
    • Mostra profilo
  • Dispositivo Android:
    SE Xperia Neo,LG Optimus One,Asus EEE Pad Transformer,HTC Magic Vodafone
  • Play Store ID:
    Agafi
  • Sistema operativo:
    Win7
Re:Gestione eventi sugli item di ListView
« Risposta #2 il: 15 Giugno 2010, 09:07:04 CEST »
0
beh potresti semplicemente attaccare l'evento da gestire direttamente sulla Textbox e sul Bottone puoi fare il tutto nell'adapter ad hoc che hai definito.



Offline Pinabello

  • Nuovo arrivato
  • *
  • Post: 22
  • Respect: +12
    • Mostra profilo
  • Dispositivo Android:
    Htc Dream Tim
  • Sistema operativo:
    Mac os X
Re:Gestione eventi sugli item di ListView
« Risposta #3 il: 25 Giugno 2010, 10:58:33 CEST »
0
Risolto?

Offline Sandra

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Sistema operativo:
    Windows XP
Re:Gestione eventi sugli item di ListView
« Risposta #4 il: 25 Giugno 2010, 12:34:58 CEST »
0
Ho risolto in un altro modo.
Togliendo il bottone dall'item riesco a gestire gli eventi semplicemente con setOnItemClickListener()  :-P

Grazie mille comunque!

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
Re:Gestione eventi sugli item di ListView
« Risposta #5 il: 08 Luglio 2010, 12:07:27 CEST »
0
 :-)
« Ultima modifica: 08 Luglio 2010, 14:09:54 CEST da alepio »
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline -Bruno90-

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
Re:Gestione eventi sugli item di ListView
« Risposta #6 il: 15 Novembre 2010, 17:16:04 CET »
0
Ciao
Io ora ho il tuo stesso problema:
potresti postare il codice (oppure spiegarmi) come (e dove) hai implementato il metodo setOnItemClickListener()??

Grazie in anticipo

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
Re:Gestione eventi sugli item di ListView
« Risposta #7 il: 15 Novembre 2010, 17:19:39 CET »
0
ho preso di fretta un pezzo spero ti basti

Codice (Java): [Seleziona]
                listView = ( ListView ) findViewById( R.id.personListView );
                listView.setOnItemClickListener(new OnItemClickListener()
                        {
                        public void onItemClick(AdapterView<?> parent, View v, int position, long id)
                                {
                                Log.i("click-listview", "qui");
                                listView.setItemChecked(position, true);
                                        //_____________________________________________
                                        //prelevo il testo della riga e lo modifico
                                Log.i("menu", "qui");
                                TextView TestoSurn = (TextView) v.findViewById(R.id.personName);
                                        Log.e("push", TestoSurn.getText().toString());
                                        String strStringaTesto = TestoSurn.getText().toString();
                                Log.i("menu", "qui");
                                //DoG.modData(position, "aaaa", "Valore2", "Valore3");
                                listView.invalidateViews();
                                        //-------------------------------------------------------------------
                                        String StringaControllo = strStringaTesto.subSequence(strStringaTesto.length()-4, strStringaTesto.length()).toString();
                                        Log.e("if color",StringaControllo);
                                        if (StringaControllo.contains("-OK-")) {
                                                //personList.add(null);
                                                TestoSurn.setText(strStringaTesto.subSequence(0, strStringaTesto.length()-9).toString());
                                                //v.setBackgroundColor(Color.BLACK);
                                                DoG.modData(position, "ok", strStringaTesto.subSequence(0, strStringaTesto.length()-9).toString(), "Valore3");
                                        }
                                        else {
                                                TestoSurn.setText(strStringaTesto + "     -OK-" );
                                                //v.setBackgroundColor(Color.LTGRAY);
                                                DoG.modData(position, "no", strStringaTesto+ "     -OK-", "Valore3");
                                                }
                                         listView.refreshDrawableState();
                                        listView.invalidateViews();
                                       
                                         //------------------------------------------------------------*/
                                }
               });        
                       
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline -Bruno90-

  • Nuovo arrivato
  • *
  • Post: 41
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC wildfire
  • Sistema operativo:
    Windows XP
Re:Gestione eventi sugli item di ListView
« Risposta #8 il: 15 Novembre 2010, 17:42:18 CET »
0
Ottimo GRAZIE MILLE!!!