Como se mencionó Rajdeep Dua, SQLite utiliza un tipado dinámico. Aquí es lo que el documentation dice:
mayoría de los motores de bases de datos SQL (todos los motores de base de datos SQL que no sea SQLite, por lo que sabemos) utiliza tipos estáticos, rígidos. Con el tipado estático de , el tipo de datos de un valor viene determinado por su contenedor: la columna particular en la que se almacena el valor.
SQLite utiliza un sistema de tipo dinámico más general. En SQLite, el tipo de datos de un valor está asociado con el valor en sí, no con su contenedor .
La documentación Android dice que el resultado de getInt() cuando el valor de la columna es null
es definido por la implementación. Para mí, devuelve 0 también.
por lo que utiliza getString() lugar, aunque el resultado de este método es también definida por la implementación, para mí, devuelve null
cuando el valor de la columna es null
, o una cadena que contiene el número de otra manera.
Así que el código es el siguiente:
Strint strVal = cursor.getInt(cursor.getColumnIndexOrThrow(MyDBAdapter.KEY_X));
if(strVal != null){
int intVal = Integer.parseInt(strVal);
}
muchas gracias ... – user387184