2010-08-22 10 views
1

Je voudrais remplir une liste de deux tables. Quelqu'un sait comment je peux y parvenir? À l'heure actuelle ce que j'ai ressemble, mais il ne fonctionne qu'avec un adaptateur:Listview de plusieurs tables?

private void populate() { 
     todoCursor = dbNotes.getTodoKey(); 
     startManagingCursor(todoCursor); 
     todo = 
      new SimpleCursorAdapter(
       this, 
       R.layout.todo_list, 
       todoCursor, 
       new String[] {databaseHelper.DB_COLUMN_TODO_KEYS}, 
       new int[] {R.id.textTodo}); 
     setListAdapter(todo); 
    } 

    private void fillData(int i) { 
     Cursor notesCursor = dbNotes.retrieveAll(i, "=0"); 
     startManagingCursor(notesCursor); 
     notes = 
      new SimpleCursorAdapter(
       this, 
       R.layout.list_item, 
       notesCursor, 
       new String[] {databaseHelper.DB_COLUMN_SUBJECT, databaseHelper.DB_COLUMN_TIME, databaseHelper.DB_COLUMN_MESSAGE, databaseHelper.DB_COLUMN_DOW, databaseHelper.DB_COLUMN_MD}, 
       new int[] {R.id.text1, R.id.text2, R.id.text3, R.id.textDay, R.id.textDayOfWeek}); 
     setListAdapter(notes); 
    } 
+0

Vous pouvez créer une vue qui rejoint les tables et interroger celle-ci à la place, comme dans Android's ContactsProvider http://androidxref.com/4.4.4_r1/xref/packages/providers/ContactsProvider/src/com/android/providers /contacts/ContactsDatabaseHelper.java#Views – faizal

Répondre

3

J'aimerais remplir un ListView de 2 tables. Quelqu'un sait comment je peux y parvenir?

Vous n'avez pas expliqué exactement ce que vous entendez par "remplir une liste de 2 tables".

Ainsi, selon votre définition, vous pouvez:

  • Utilisez un join pour créer un seul jeu de résultats à partir des deux tables
  • Utilisez mes MergeCursor pour concaténer adaptateurs sur vos deux jeux de résultats en un seul adaptateur
  • Assemblez un seul MatrixCursor de vos pièces disparates que vous mettez ensuite dans la liste

Il y a probablement d'autres solutions aussi.