2012-01-18 10 views
0

私はアプリで検索バーを実装しており、それは正常に動作しています。 現在、カスタム提案の右側にアイコンを表示したいと考えています。Android:searchbar - >アイコン付きのカスタム提案

developer.android.comでは、「SUGGEST_COLUMN_ICON_2」列に画像の参照を追加する必要があると言います。

問題は、カーソルでこれを追加する方法がわかりません。これは、SQLでは実行できないためです。

設定したい画像は、自分のカーソルのある列(ステータス)にどの値があるかによって決まります。

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" 

使用したい画像は、ドロウアブルフォルダにあります。

TABLE1が持っている:_id、名前、番号

表2は持っている:_id、番号、ステータス、....

+0

は、テーブルのような外部キーを持つドロウアブルを持つテーブルを参照し、次に描画可能なフォルダ内の自分の画像を一覧でテーブルを作成します - STATUS_IDを、描画可能--- status_idを別のテーブルから参照すると、drawableが得られます。 –

答えて

0

OKを。あなたの場合、あなたのtable2は、番号、ステータス、描画可能フィールドを持っています。引き出し可能なフィールドにはあなたのトリックを行うべきあなたのイメージがあります。番号フィールドを省略してすぐにstatus_idに参加することもできます。

例:

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

良いアイデアのように聞こえます。 残念ながら、ステータスとドロウアブルを持つ3番目のテーブルを作成する必要があります。 残りの質問は今、どのように結果がtable1からのidと名前とtable3からのdrawableを持つようにSQL文を作成できます。 正しいステートメントを取得するためにはtable2が必要なので、SQLステートメントの作成は紛らわしいものです。 – anonymous

+0

なぜ3番目のテーブルが必要でしょうか? 2番目のテーブルにdrawableを持つフィールドを追加できますか?外部キーを使用するだけで結合を取得できます。あなたはおそらくcreate tableステートメントを投稿するべきです。 –

+0

私のテーブル2には多くの行があり、4つの異なるステータスしかないので。 テーブル2のステータスにドロワブルを追加保存すると、不要なデータオーバーヘッドが発生します。 また、ステータスが変わる場合は2つのデータフィールドを変更する必要があります。 3番目のテーブルはageinを編集する必要はありません。 – anonymous

関連する問題