Quiero agregar OnLongClickListener
en mi vista de lista. Siempre que el usuario mantenga presionado el elemento en la lista, se debe realizar alguna acción, pero mi código no capta a este oyente. Por favor, hágame saber a dónde voy mal. El código similar funciona setOnItemClickListener
muy bien.
Aquí está el código:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> arg0, View v,
int index, long arg3) {
// TODO Auto-generated method stub
Log.d("in onLongClick");
String str=listView.getItemAtPosition(index).toString();
Log.d("long click : " +str);
return true;
}
});
Respuestas:
Debe establecer setOnItemLongClickListener () en ListView:
El XML para cada elemento de la lista (si usa un XML personalizado) también debe tenerlo
android:longClickable="true"
(o puede usar el método de conveniencialv.setLongClickable(true);
). De esta manera, puede tener una lista con solo algunos elementos que responden a un clic largo.Espero que esto te ayudará.
fuente
lv.setLongClickable(true);
también.lv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {...
Si su elemento de fila ListView se refiere a un archivo XML separado, asegúrese de agregarlo
android:longClickable="true"
a ese archivo de diseño además de configurarlosetOnItemLongClickListener()
en su ListView.fuente
o prueba este código:
fuente
Creo que este código anterior funcionará en LongClicking en la vista de lista, no en los elementos individuales.
¿por qué no usar
registerForContextMenu(listView)
. y luego obtener la devolución de llamada en OnCreateContextMenu.Para la mayoría de los casos de uso, esto funcionará igual.
fuente
En xml agregar
En archivo java
prueba este setOnItemLongClickListener ()
fuente
Esto debería funcionar
tampoco se olvide en su xml
android:longClickable="true"
o si tiene una vista personalizada agregue esto a su clase de vista personalizadayouCustomView.setLongClickable(true);
aquí está la salida del código anterior
fuente
Intenté la mayoría de estas respuestas y todas fallaron para TextViews que tenían habilitado el enlace automático, ¡pero también tuvieron que usar la pulsación larga en el mismo lugar!
Hice una clase personalizada que funciona.
fuente
Esto funcionó para mí para cardView y funcionará igual para la vista de lista dentro del adaptador calss, dentro de la
onBindViewHolder()
funciónfuente
Si desea hacerlo en el adaptador, simplemente puede hacer esto:
fuente
Definitivamente hace el truco.
fuente