Foros del Web » Programando para Internet » Android »

[SOLUCIONADO] Eliminar fila de un ListView

Estas en el tema de Eliminar fila de un ListView en el foro de Android en Foros del Web. Hola, estoy tratando de eliminar una fila de un listview que he cargado con datos de una tabla de una bd. Los datos cargados en ...
  #1 (permalink)  
Antiguo 05/08/2014, 10:04
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 1
Eliminar fila de un ListView

Hola, estoy tratando de eliminar una fila de un listview que he cargado con datos de una tabla de una bd. Los datos cargados en el listview son id, nombre. Lo que quiero es que al hacer una pulsación larga sobre la fila la elimine directamente. Este es el código:

Código Java:
Ver original
  1. myListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
  2.             @Override
  3.                public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
  4.                      int pos = ??????
  5.                      personasDBAdapter.deletePersona(id);
  6.                }
  7.         });
  8.     }

Muchas gracias, saludos
  #2 (permalink)  
Antiguo 05/08/2014, 10:08
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Eliminar fila de un ListView

Código Java:
Ver original
  1. personasDBAdapter.deletePersona(id);
  2. personasDBAdapter.notifyDataSetChanged();
  #3 (permalink)  
Antiguo 05/08/2014, 10:11
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: Eliminar fila de un ListView

Cita:
Iniciado por razpeitia Ver Mensaje
Código Java:
Ver original
  1. personasDBAdapter.deletePersona(id);
  2. personasDBAdapter.notifyDataSetChanged();
Hola, creo que no me he explicado bien, antes de llamar a personasDBAdapter.deletePersona(id); necesito el id de la persona, ¿Cómo consigo ese dato de una fila del listview? Ojo, no es la posición de la fila en el listview, sino el campo id de la persona.

Código Java:
Ver original
  1. myListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
  2.             @Override
  3.                public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
  4.                      int id_persona = ESTE ES EL DATO QUE QUIERO CONSEGUIR !!
  5.                      personasDBAdapter.deletePersona(id);
  6.                }
  7.         });
  8.     }

Gracias
  #4 (permalink)  
Antiguo 05/08/2014, 10:19
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Eliminar fila de un ListView

Código Java:
Ver original
  1. Persona persona = (Persona)personasDBAdapter.getItem(i);
  #5 (permalink)  
Antiguo 05/08/2014, 10:51
 
Fecha de Ingreso: julio-2014
Mensajes: 4
Antigüedad: 10 años, 5 meses
Puntos: 1
Respuesta: Eliminar fila de un ListView

nHola, No sirve, la variable i que estás tomando:

public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l)

es la posición de la fila sobre la que estoy haciendo la pulsación larga, pero no tiene por que coincidir con el id de la persona que se muestra. Una cosa es la posición de la fila en el listview y otra es el campo id de la persona que se muestra en el listview:


fila 1 del listview 234 Juan
fila 2 del listview 138 Ana
fila 3 del listview 652 Pepe

el 'i' que estás cogiendo hace referencia a la fila, y no se corresponde con el id_persona.

Lo que no sé es como seleccionar el campo id_persona de la fila sobre la que he hecho una pulsación larga. Gracias.
  #6 (permalink)  
Antiguo 05/08/2014, 11:20
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Eliminar fila de un ListView

Buena suerte.

http://stackoverflow.com/questions/1...tion-wont-work

Etiquetas: fila, listview
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 2 personas




La zona horaria es GMT -6. Ahora son las 20:00.