Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 05/10/11, 01:52:02
Array

[xs_avatar]
maxenz maxenz no está en línea
Usuario novato en la web
 
Fecha de registro: oct 2011
Mensajes: 9
Tu operador: Movistar

Parametro query SQLite Android

Tengo una consulta en mi actividad principal, que muestra todos los registros de mi base de datos.

En esa actividad al tocar un boton del menu voy a la actividad FILTRAR. en esa actividad tengo 2 spinners, en los cuales puedo elegir opciones. Yo elijo 1 opcion de los spinners que quiera o de uno solo de ellos, y pongo FILTRAR. Ahi necesito que vaya a mi actividad principal y la query la filtre por las variables que le pase en los spinners.

Bueno la parte de pasar con put extra en el intent no es ningun drama llega todo bien. Ahora bien, no se como hacerle saber a la aplicacion si la consulta la ejecuto desde la actividad principal o pasandole los parametros desde la actividad FILTRO

Aquí está el ejemplo

Código:
String selGrado this.getIntent = () getExtras () getString ("grado");


  String query = "Select * FROM Incidentes WHERE 1=1";

   if () query+= " AND codGr='"+selGrado+"'";



      Cursor d = db2.rawQuery (query, null);
que condicion le puedo pasar al IF como para que se de cuenta que selGrado tiene lo que le pase en caso de que venga de filtro, o que la pase por alto si es que no tiene nada porque estoy ejecutando desde la actividad principal y quiero la consulta completa?

gracias
Responder Con Cita


  #2  
Viejo 05/10/11, 02:01:15
Array

[xs_avatar]
iliberis iliberis no está en línea
Miembro del foro
 
Fecha de registro: abr 2009
Localización: Graná, España
Mensajes: 439
Modelo de smartphone: HTC Trinity, Samsung Galaxy Mini, ZTE Blade, ZTE Light Pro
Tu operador: Simyo
Sencillamente comprueba antes si la variable está vacia o no. Si no lo está, le añades el "AND codGr..." y listo.
__________________
Por respeto a los demas:
  • Preséntate. Esto es un foro, no un centro de soporte
  • Escribe correctamente, para que podamos entendernos todos. Esto NO es un SMS, sino un foro.
  • Usa el buscador. No muerde. Evitemos tener cien hilos con la misma pregunta.
  • Insisto: Usa el buscador Usa el buscador Usa el buscador Usa el buscador
  • No escribas en mayúsculas. Es de mala educación.

Y, en general, trata a todo el mundo como te gusta a ti que te traten.
Responder Con Cita
  #3  
Viejo 05/10/11, 03:25:24
Array

[xs_avatar]
maxenz maxenz no está en línea
Usuario novato en la web
 
Fecha de registro: oct 2011
Mensajes: 9
Tu operador: Movistar

ya pobre comparandola con null, y con "", y ninguno de los 2 me funciona.. es mas creo que hay un problema cuando hago el getExtra desde la actividad principal cuando no lo paso desde la actividad de los filtros... ya que hace un getExtra de algo que nunca le pasaron. alguna idea de como resolverlo??
Responder Con Cita
  #4  
Viejo 05/10/11, 05:29:55
Array

[xs_avatar]
iliberis iliberis no está en línea
Miembro del foro
 
Fecha de registro: abr 2009
Localización: Graná, España
Mensajes: 439
Modelo de smartphone: HTC Trinity, Samsung Galaxy Mini, ZTE Blade, ZTE Light Pro
Tu operador: Simyo
Habría que ver qué cadena entra cuando no hay nada seleccionado en el spinner, porque lo mismo no es null ni una cadena vacía. Yo pondría lo mismo un valor estilo "Ninguno", que será algo más fácil de comparar. Asi comparas con selGrado="Ninguno"

Otra cosilla, el "1=1" en la consulta no es muy elegante. Yo lo quitaba también. Si en un bucle (por ejemplo), algún profesor nos veía "True=True" o "1=1" es que nos suspendía directamente la asignatura sin compasión. En su lugar, yo suelo poner el WHERE con el resto de las condiciones. Pero, vamos, que funcionar va a funcionar igual, asi que haz lo que te resulte más cómodo.
__________________
Por respeto a los demas:
  • Preséntate. Esto es un foro, no un centro de soporte
  • Escribe correctamente, para que podamos entendernos todos. Esto NO es un SMS, sino un foro.
  • Usa el buscador. No muerde. Evitemos tener cien hilos con la misma pregunta.
  • Insisto: Usa el buscador Usa el buscador Usa el buscador Usa el buscador
  • No escribas en mayúsculas. Es de mala educación.

Y, en general, trata a todo el mundo como te gusta a ti que te traten.

Última edición por iliberis Día 05/10/11 a las 05:32:38. Razón: Aclarar
Responder Con Cita
  #5  
Viejo 05/10/11, 12:24:17
Array

[xs_avatar]
RubenGM85 RubenGM85 no está en línea
Miembro del foro
 
Fecha de registro: mar 2010
Localización: Girona
Mensajes: 435
Modelo de smartphone: LG Nexus 5
Tu operador: Vodafone
 Cita: Originalmente Escrito por maxenz Ver Mensaje
Código:
String selGrado this.getIntent = () getExtras () getString ("grado");
¿Eso lo tienes así en el código?

Pon esto en el if, por ejemplo: "selGrado != null && selGrado.length() > 0"

Por otro lado, hay mejores maneras de construir las selects... sobretodo porque tal como lo haces no escapas las variables (y no, poner las comillas delante y detrás no cuela).

Prueba con esto:
Código:
String sel = null;
String[] selArgs = null;
if(selGrado != null && selGrado.length() > 0) {
    sel = "codGr = ?";
    selArgs = new String[]{selGrado};
}
Cursor d = query("Incidentes", null, sel, selArgs, null, null, null);

Última edición por RubenGM85 Día 05/10/11 a las 12:32:52. Razón: Dedos torpes.
Responder Con Cita
  #6  
Viejo 06/10/11, 02:06:26
Array

[xs_avatar]
maxenz maxenz no está en línea
Usuario novato en la web
 
Fecha de registro: oct 2011
Mensajes: 9
Tu operador: Movistar

gracias igual gente, lo solucione usando la propiedad hasExtra()
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 19:37:12 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /