android - ListView usando dos cursores?
android-listview android-cursoradapter (4)
Tengo un código que ejecuta dos consultas contra una base de datos y devuelve dos objetos de cursor. ¿Hay alguna forma en que pueda combinar estos dos cursores para que todos los ListView
los datos de ambos?
Echa un vistazo a MatrixCursor .
Quizás esto te ayude también a Android - Base de datos de la tabla
FYI - Un ejemplo de usar MergeCursor ()
c = Cursor que contiene las columnas de contactos de Contacts.CONTENT_URI
private Cursor mergeCursorSubset(Cursor c) {
int userMobile = ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE,
workMobile = ContactsContract.CommonDataKinds.Phone.TYPE_WORK_MOBILE;
String storedNumber = ContactsContract.CommonDataKinds.Phone.NUMBER,
displayName =ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
numberType = ContactsContract.CommonDataKinds.Phone.TYPE,
contactKey = ContactsContract.CommonDataKinds.Phone.LOOKUP_KEY,
whereClausePre = contactKey+" = ''",
whereClausePost = "AND ("+numberType+" = ''"+userMobile+"'' OR "+numberType+" = ''"+workMobile+"''";
Uri lookupUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;;
Cursor [] m = new Cursor[c.getCount()];
if (c.moveToFirst())
for (int k = 0; k<c.getCount();k++){
//Find the mobile numbers
Cursor u = this.getContentResolver().query(lookupUri,
new String[]{displayName, storedNumber, numberType}
, whereClausePre+c.getString(c.getColumnIndex(Contacts.LOOKUP_KEY))+"'') "
+ whereClausePost, null, null);
int i = 0;
if (u.moveToFirst())
m[i++] = u;
} //for Each key
return new MergeCursor(m);
}
Hay MergeCursor para eso (si no hay forma de unir tablas).
También puedes usar cwac-merge .
cwac-merge: proporciona el MergeAdapter, un ListAdapter que combina múltiples Vistas o ListAdapters en un solo ListAdapter. Use esto para los encabezados de sección, combinando múltiples fuentes de datos, etc.