2011-07-07 21 views
7

Me gustaría tener ambos tipos de clics en una listaView - onClick y LongClick.ListView no activa setOnLongClickListener, solo setOnItemClickListener

vez implementado como esto:

this.listViewSub = (ListView) this.findViewById(R.id.listsub); 

this.listViewSub.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(final AdapterView parent, final View view, final int position, 
       final long id) { ... } }); 

     // listen to long click - to share texts 
    this.listViewSub.setOnLongClickListener(new OnLongClickListener() { 
     @Override 
     public boolean onLongClick(View v) { ... } }); 

Pero does't disparar el largo clic. ¿Alguien tiene alguna idea de por qué?

Respuesta

24

Tiene que activar el LongClickable

list.setLongClickable(true); 

y

list.setOnItemLongClickListener(new OnItemLongClickListener() { 
     @Override 
     public boolean onItemLongClick(AdapterView<?> arg0, View arg1, 
       final int arg2, long arg3) { 

} 
}); 
+0

Gracias hombre! Solucionado mi problema :) Y por cierto - usted no tiene que hacer a través de código setLongClickable, su mejor cuando se determn a través del XML: androide: longClickable = "true" – Ofershap

+1

La documentación de 'setOnItemLongClickListener' dice que "si esta vista no se puede hacer clic mucho, se puede hacer clic mucho ". – Vadim

+8

Y esto no funciona para mí ... :( – Vadim

0

onLongClick devuelve verdadero si la devolución de llamada consumió el clic largo, en caso contrario, devuelve falso. Entonces, si el evento es manejado por este método, devuelve true.

+0

He agregado un punto de interrupción dentro de este método, y no se detiene allí ... parece que no activa el evento. – Ofershap

6

@Vadim, son adaptador de su vista de lista es extiende desde BaseAdapter? en caso afirmativo, también debe configurar convertView.setLongClickable (true); en el getView().

1

Para mí, tuve que establecer android:longClickable="true" en el archivo XML que contiene mi ListView fila diseño (diseño no ListView) para que el artículo sea largo puede hacer clic.

+0

De las muchas soluciones propuestas que he visto para este problema (y lo he intentado) TODOS), este es el único que me ha funcionado. –

Cuestiones relacionadas