使用listview中的每个项访问sqlite数据库

时间:2016-10-18 11:25:25

标签: android sqlite android-sqlite

我有一个列表视图,显示了一些项目,每个项目包含一个名为category Id的属性,这个属性与我的一个数据库taple相关

我需要为每个项目打开数据库,进行查询以获取类别对象,其中id = item category id,然后在listview中显示数据

打开数据库按记录读取记录非常繁重

任何人都可以在没有多次打开数据库的情况下建议如何解决这个问题吗?

谢谢

2 个答案:

答案 0 :(得分: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
     }
}

答案 1 :(得分:0)

您可以将JOINS用于此目的。

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

您必须将(id1, id2, id3)替换为表格中的项目ID。