2012-01-18 2 views
0

J'ai mis en place la barre de recherche dans mon application et ça fonctionne bien, mais pour le moment je veux aussi montrer une icône sur le côté droit d'une suggestion personnalisée. Developer.android.com dit que je dois ajouter une colonne "SUGGEST_COLUMN_ICON_2" avec une référence aux images.Android: barre de recherche -> suggestions personnalisées avec l'icône

Le problème est que je ne sais pas comment ajouter ceci à mon curseur parce que cela ne peut pas être fait par sql.

Les images que je veux définir dépendent de la valeur d'une certaine colonne (état) de mon curseur.

String sql="SELECT U._id, U.name AS suggest_text_1, C.status FROM table1 AS U LEFT OUTER JOIN table2 AS C ON U.number=C.number WHERE suggest_text_1 LIKE \"%"+selectionArgs[0]+"%\" ORDER BY suggest_text_1 ASC" 

Les images que je souhaite utiliser se trouvent dans le dossier pouvant être tracé.

table1 a obtenu: _id, nom, numéro

tableau 2 a obtenu: _id, numéro, statut, ....

+0

Créer une table avec une liste de vos images dans le dossier drawable référence alors la table avec dessinables avec une clé étrangère comme la table - status_id, drawable --- puis référencez le status_id à partir d'une autre table et vous obtiendrez votre drawable. –

Répondre

0

OK. Dans votre cas, votre table2 aura un nombre, un statut, des champs dessinables. le champ drawable aura vos images qui devraient faire votre tour. Même vous pouvez omettre le champ numérique et rejoindre immédiatement le status_id.

exemple:

table1 id int ,name varchar(?),table2_id int fk references table2(id) -- 
table2 id int pk,status varchar(?),status_drawable_id int fk references drawables_table (id) 
drawables_table id int pk ,drawables varchar(?) -- 

select t1.id,t1.name,t2.status,dt.drawable from table1 t1 
inner join table2 t2 
on t1.status_id=t2.id 
inner join drawables_table dt 
on t2.status_drawable_id=dt.id 
where t1.name like '% blech %' 
order by t1.name 
+0

Cela semble être une bonne idée. malheureusement, je devrais créer une troisième table avec le statut et drawable. La question restante est maintenant, comment je peux créer l'instruction sql afin que le résultat ait l'ID et le nom de table1 et drawable de table3. Parce que table2 est toujours nécessaire pour obtenir la bonne instruction, il est très difficile de créer l'instruction sql. – anonymous

+0

pourquoi auriez-vous besoin d'une 3ème table? vous pouvez ajouter un champ avec drawable à votre 2ème table? et récupérer avec une jointure en utilisant simplement la clé étrangère. vous devriez peut-être poster vos instructions create table. –

+0

Parce que ma table2 a beaucoup de lignes et qu'il n'y a que 4 statuts différents. L'enregistrement du drawable en plus de l'état dans le tableau 2 créerait un surdébit de données inutile. Aussi je devrais changer 2 champs de données si le statut changerait. La troisième table que je n'aurais jamais à modifier agein. – anonymous

Questions connexes