Leer desde una base de datos en android a un arraylist
Soy muy nuevo al desarrollo de androide y no puedo entender cómo leer de mi database/table
en un arrayList. Ahora mismo tengo:
Cursor c = myDB.rawQuery("SELECT * FROM " + TableName , null); int Column1 = c.getColumnIndex("Field1"); int Column2 = c.getColumnIndex("Field2"); // Check if our result was valid. c.moveToFirst(); if (c != null) { // Loop through all Results do { String Name = c.getString(Column1); int Age = c.getInt(Column2); Data =Data +Name+"/"+Age+"\n"; }while(c.moveToNext()); } TextView tv = new TextView(this); tv.setText(Data); setContentView(tv); } catch(Exception e) { Log.e("Error", "Error", e); } finally { if (myDB != null) myDB.close(); }
¿Cómo puedo leer esto en un arraylist?
- Cómo dividir valores separados por comas en SQLite?
- ¿Cómo descargar una base de datos SQLite desde un dispositivo Android?
- Android: ¿Qué tan segura es la base de datos con la aplicación
- Cómo utilizar Spatialite con Xamarin en Android
- Sugar ORM para Android no puede encontrar el nombre de mi columna
- Manejo del almacenamiento de disco completo en Android
- ¿Cómo mostrar los datos de la base de datos en un RecyclerView con alto rendimiento?
- Cómo contar la fila de una tabla de base de datos sqlite android
- Sincronización entre la base de datos SQL Lite en un dispositivo android y la base de datos de SQL Server
- Inserción SQLite de Android única
- Cómo incrementar el campo en la base de datos sqlite android
- Cursor.moveToNext sin moverToFirst
- Búsqueda en una base de datos SQLite que contenga datos cítricos
Este es un código que muestra cómo obtener ArrayList desde la consulta de base de datos.
public ArrayList<String> GetAllValues(String aTable,String[] aColumn) { ArrayList<String> list = new ArrayList<String>(); Cursor cursor = sqlDB.query(aTable, aColumn, null, null, null, null, null); if (cursor.moveToFirst()) { do { list.add(cursor.getString(0)); } while (cursor.moveToNext()); } if (cursor != null && !cursor.isClosed()) { cursor.close(); } return list; }
Si proporciona null en "aColumn", le dará todas las columnas. Espero que ayude.
//ArrayList of Calllog class objects ArrayList<CallLog> arrCallLogs = null; Cursor curCalllog = myDB.rawQuery("SELECT * FROM " + TableName , null); if(curCalllog != null && curCalllog.moveToFirst()) { arrCallLogs = new ArrayList<CallLog>(); while (curCalllog.isAfterLast() == false) { //Calllog is a class with list of fileds CallLog callLog = new CallLog(); callLog.setId(curCalllog.getLong(curCalllog.getColumnIndex(KEY_ROWID))); callLog.setName(curCalllog.getString(curCalllog.getColumnIndex(KEY_NAME))); callLog.setNumber(curCalllog.getString(curCalllog.getColumnIndex(KEY_NUMBER))); callLog.setNumberType(curCalllog.getInt(curCalllog.getColumnIndex(KEY_NUMBERTYPE))); callLog.setCallType(curCalllog.getInt(curCalllog.getColumnIndex(KEY_CALLTYPE))); callLog.setDatetime(curCalllog.getLong(curCalllog.getColumnIndex(KEY_DATETIME))); callLog.setDuration(curCalllog.getLong(curCalllog.getColumnIndex(KEY_DURATION))); callLog.set_new(curCalllog.getInt(curCalllog.getColumnIndex(KEY_NEW))); arrCallLogs.add(callLog); curCalllog.moveToNext(); } } curCalllog.close(); myDB.close();
Este es el ejemplo de cómo puede crear una arrayList desde Cursor.
Aquí hay un nombre de la clase Calllog que tiene una lista de fileds y setter y métodos getter. Aquí yo tenía hacer un ArrayList de Calllog objetos utilizando Cursor
- Boot BroadcastReceiver no funciona en los dispositivos Xiaomi
- ¿Cuál es la historia con el espacio de nombres XML de Android?