Sqlite query para recuperar todas las filas donde no nulo android
Buen día, tengo como 2 pregunta aquí:
Primero una información de fondo.
Desde la documentación de Android, al consultar una base de datos, tenemos que devolver una columna con el nombre "_id" para que funcione con un adaptador de cursor. Ahora en mi implementación, digamos tengo 3 columnas "_id", "columna A" "columna B".
Así que si tengo 8 filas de entrada en mi tabla de base de datos, donde las primeras 3 filas en la columna A se llena y las 5 filas siguientes en la columna B se llena. Si consulta la base de datos para la columna B y uso el código de abajo en mi bindview, el cursor devuelve todas las filas que resultarán en las primeras 3 entradas siendo nulas y los últimos 5 elementos que se muestran en mi gridview de imágenes.
Aquí está mi bindView:
@Override public void bindView(View view, Context context, Cursor cursor) { ViewHolder holder = (ViewHolder)view.getTag(); int columnIndex = cursor.getColumnIndexOrThrow(columnName); final String name = cursor.getString(columnIndex); while(cursor.moveToNext()){ if(name != null){ Log.d(TAG, "string name in gridimageadapter is " + name); BitmapFactory.Options options = new BitmapFactory.Options(); Bitmap bitmap = BitmapFactory.decodeFile(name); Bitmap newbitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, false); if(holder.image != null){ holder.image.setImageBitmap(newbitmap); } bitmap.recycle(); } } }
Así que mis preguntas son:
-
¿Cómo escribo una consulta sqlite para devolver una columna con filas no nulas? Mi implementación actual es:
Public Cursor retrieveTag (String tag) {
String[] condition = {KEY_ID,tag}; Cursor cursor = db.query(DATABASE_TABLE, condition, null, null, null, null, null); return cursor; }
-
Del código BindView, si utilizo esta condición como
If (! Name.equals (null) ||! Name.equals ("")) {}
Obtengo una NullPointerException en el mismo. ¿Por qué es eso? .. esta es la manera correcta de probar para Strings derecho? ..
La esperanza es clara en mi pregunta y cualquier ayuda será apreciada grandemente. Gracias.
Mediante la consulta Sql puede administrar los datos sin valores nulos, consulte el código a continuación.
Cursor c=db.rawQuery("Select columnB from tablename where columnB IS NOT NULL");