cursor.getInt (boolean_column_index)! = 0 es más estándar C.
Buttink
2
Sin embargo, @Buttink >0es más corto en bytes: P
Gurupad Mamadapur
45
No hay ningún tipo de datos bool en SQLite. Use un int que arregle a 0 o 1 para lograr ese efecto. Consulte la referencia de tipos de datos en SQLite 3.0 .
Aunque no corresponde exactamente a esta pregunta (Alex es la más cercana), es una excelente respuesta, y la usaré.
Budimir Grom
10
La mayoría de las respuestas aquí pueden dar como resultado NumberFormatExceptions o "el operador no está definido para los tipos nulo, int" si la columna en la que almacenó el int también podía contener nulo. La forma decente de hacer esto sería usar
Esto no funciona. Boolean.parseBoolean toma cadenas "verdaderas" o "falsas". Si ha almacenado su valor booleano como 0 o 1, siempre obtendrá falso.
Gober
Si lo que dice Gober es cierto, entonces esta respuesta merece ser rechazada
Shervin Asgari
Ah, tiene razón. Creo que la claridad del resultado supera la necesidad de almacenar las cadenas.
Sojurn
1
@ShervinAsgari en la otra respuesta, si almacena su booleano como verdadero o falso, siempre será falso. Por lo tanto, también debería ser rechazado con su lógica.
Arda Kara
6
Una implementación que se encuentra en Ormlite Cursor también verifica Null, lo que ninguna de las otras respuestas hace.
>0
es más corto en bytes: PNo hay ningún tipo de datos bool en SQLite. Use un int que arregle a 0 o 1 para lograr ese efecto. Consulte la referencia de tipos de datos en SQLite 3.0 .
fuente
fuente
La mayoría de las respuestas aquí pueden dar como resultado NumberFormatExceptions o "el operador no está definido para los tipos nulo, int" si la columna en la que almacenó el int también podía contener nulo. La forma decente de hacer esto sería usar
aunque ahora está limitado a almacenar las cadenas "verdadero" y "falso" en lugar de 0 o 1.
fuente
Una implementación que se encuentra en Ormlite Cursor también verifica Null, lo que ninguna de las otras respuestas hace.
fuente
También puedes usar
fuente
Otra opción
fuente
boolean
tipo de datos no está disponible enCursor
.obtendrá el resultado en un
int
, por lo que debe convertir eseint
valor en aboolean
.Puedes usar
o
fuente
boolean b = (cursor.getInt (cursor.getColumnIndex ("item"))! = 0);
fuente
Bueno, eso es muy simple:
fuente