Autore Topic: OnItemLongClick ---> void?  (Letto 728 volte)

Offline ceklo

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +1
    • Mostra profilo
OnItemLongClick ---> void?
« il: 20 Novembre 2012, 09:50:04 CET »
0
Buon giorno a tutti,

Ci sono arrivato per caso (da smanettone) a questa soluzione che funziona, ma desidero capire la sintassi e chiarirmi un dubbio.
Spiego cosa fa questa porzione di programma, in una finestra di dialogo che contiene una ListView ho reso possibile attivazione di due metodi:  OnItemClick e OnItemLongClick.

Citazione
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
Citazione
listaConnessioni.setOnItemLongClickListener(new OnItemLongClickListener() {
   public boolean onItemLongClick(AdapterView<?> parentView, View childView, int posizione, long id) {
   Toast.makeText(getBaseContext(),  "click lungo su item: " + posizione, Toast.LENGTH_SHORT).show();   
   return false;
   }
});

listaConnessioni.setOnItemClickListener(new OnItemClickListener() {
   public void onItemClick(AdapterView<?> parentView, View childView, int posizione, long id) {
   Ecc. Ecc…
   }
});
Chiedo il vostro generoso aiuto su due cose:

1) Cosa significa <?> sul adapter ?
2) Perché con onItemClick poso creare un metodo void e con onItemLongClick non riesco…. !
Non si serve nessun return….! Ma non riesco a toglierlo e sostituire boolean con void! perché con onItemClick poso creare un metodo void e con onItemLongClick non riesco…. ?
Va cambiato l'adapter?

Il suggerimento da Eclipse è :

Multiple markers at this line
   - The return type is incompatible with
    AdapterView.OnItemLongClickListener.onItemLongClick(AdapterView<?>, View, int, long)
   - implements android.widget.AdapterView.OnItemLongClickListener.onItemLongClick


NOTA: Spero di trovarmi nella sezione giusta per trattare questo argomento.

Grazie
Saluti
ceklo
« Ultima modifica: 20 Novembre 2012, 10:26:20 CET da ceklo »

Offline ceklo

  • Nuovo arrivato
  • *
  • Post: 45
  • Respect: +1
    • Mostra profilo
Re:OnItemLongClick ---> void?
« Risposta #1 il: 26 Novembre 2012, 08:36:58 CET »
0
Buon giorno a tutti,

Non per rispondermi da solo, in quanto le domande di fondo rimangono ancora valide:

il metodo: public abstract boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id) prevede il ritorno di un booleano, vedi: AdapterView.OnItemLongClickListener | Android Developers - Returns: true if the callback consumed the long click, false otherwise.

mentre il metodo: public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id) è void, vedi: AdapterView.OnItemClickListener | Android Developers

Ok, ma perché uno si e l’altro no. Forse sono pignolo, ma desidero capire questo aspetto….!
Non mi basta prenderla come viene, ci sarà una ragione.
E’ chiaro che il ritorno del OnIntemLongClick posso ignorarlo/non impiegarlo, ma confonde non vedere uniformità.

Infine ancora valida la domanda del significato di <?>.

Per favore aiutatemi,
Grazie
Saluti
ceklo
« Ultima modifica: 26 Novembre 2012, 08:40:43 CET da ceklo »