2013-04-10 4 views
5

Sto creando un adattatore di array personalizzato, ora voglio implementare una funzione che gestisca il clic sulla vista. Ho in mente due opzioni, ma mi chiedo se c'è una differenza nelle prestazioni/velocità di lavoro o qualcosa del genere?Differenza in listview.setOnItemClickListener e row.setOnClickListener

Opzione 1, nel arrayAdapter sé:

row.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 


      } 
     }); 

Opzione 2, dalla principale attività:

listView.setAdapter(adapter); 
     listView.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
        long arg3) { 
       // TODO Auto-generated method stub 

      } 


     }); 

O sono esattamente la stessa cosa?

risposta

5

Oppure sono esattamente uguali?

Nel primo approccio verrà creato per ogni riga proprio listener e.q. hai 100 righe così avrai 100 ascoltatori che non è affatto buono. Nel secondo approccio creerai un listener per l'intero ListView.

android.widget.AdapterView.OnItemClickListener 
android.view.View.OnClickListener 

Come si può vedere, in primo luogo è più comodo e direttamente designato per occuparsi di widget adattatore come ListView è. Anche questo approccio è generalmente raccomandato e utilizzato.

Si dispone di una connessione con ogni riga tramite i parametri del metodo onItemClick() e il codice è più leggibile dall'uomo ed è più chiaro.