Dans mon application, j'ai une base de données SQLite qui ressemble à ceci:Affichage des données dans un ListView lorsque chaque objet est situé sur plus d'une ligne dans un curseur
CREATE TABLE notes (_id integer primary key,
content text);
CREATE TABLE tags (_id integer primary key,
name text,
noteid integer,
foreign key(noteid) references notes(_id));
Je stocker du texte qui peut avoir une certaine tags associés. Maintenant, je veux montrer ce texte et les balises dans un ListView
. Cependant, je ne peux pas comprendre comment faire cela avec un SimpleCursorAdapter
. Est-ce même possible? Mes données pourraient ressembler à ceci:
sqlite> select * from notes;
1|foo bar baz
sqlite> select * from tags;
1|x|1
2|y|1
La requête pour obtenir toutes les notes et les données qu'il retourne ressemble à ceci:
sqlite> select notes._id, notes.content, tags.name from notes, tags where notes._id = tags.noteid;
1|foo bar baz|x
1|foo bar baz|y
Maintenant, si je veux lier ces données à la ListView
dans certains façon, comment le faire? Je serais heureux si chaque ligne int le ListView
contenait deux lignes, une ligne avec le contenu et une ligne avec tous les tags. Ai-je raison de deviner que le SimpleCursorAdapter ne m'aidera pas ici? Que devrais-je faire à la place?
Ce sont tous de bons points. Qu'en est-il de sublimer un adaptateur pour gérer cela pour moi? Celui qui lit le nombre approprié de lignes pour chaque objet note. – Arlaharen
@Arlaharen: Il n'y a pas de classe adaptateur intégrée qui a la notion de traverser les relations de cette façon. Sinon, toute ma réponse ci-dessus implique de "sous-classer un adaptateur". – CommonsWare