2016-10-18 9 views
-5

内の各項目にsqliteのデータベースにアクセスし、各項目はカテゴリIDと呼ばれる属性が含まれ、これは属性ですが、私のデータベースtaplesの1私はいくつかの項目を表示するリストビューを持っているリストビュー

に関連している各項目が開くようにするために私が必要データベース、

をどこID =アイテムカテゴリIDカテゴリオブジェクトを取得するクエリを作成して、リストビュー内のデータを示し、誰もがこの問題を解決する方法をアドバイスすることができ、レコード

によってレコードを読み取るために、データベースを開くことが非常に重いです何度もデータベースを開くことなく?

ありがとうございました

+0

*データベースを何度も開くことなくこの問題を解決するには誰も助言できますか?*明らかに一度開いてください...カテゴリの名前だけが必要な場合は、JOIN(eventualy with group_concat)を使用してください – Selvin

答えて

0

あなたはデータベースを一度赤くすることができます。すべてのデータを同時に取得する。返された配列から目的のデータを読み込みます。

//returns data from DB 
String[] array = getInfoDataBase(); 

//array example 

array = ["id1", "name1", "data2","id2", "name2", "data2", ....] 

for (int i = 0; i < array.length; i = i+3) { 
    if (array[i] == //desired id) { 
      //get your data from the array like name1, data1 
      break; // to stop the fro loop 
    } 
} 
0

この目的でJOINSを使用できます。

SELECT * FROM item INNER JOIN category ON item.categoryId = category.id WHERE item.id in (id1, id2, id3) 

(id1, id2, id3)をテーブルのアイテムIDに置き換える必要があります。

関連する問題