在android中使用游标中的多个查询

在android中使用游标中的多个查询,android,sqlite,cursor,Android,Sqlite,Cursor,我想去安卓系统中sqllite数据库的一些信息,但我不知道是什么。 我的代码是: public Cursor getData(){ 字符串myPath=DB_PATH+DB_NAME; db=SQLiteDatabase.openDatabase(myPath,null, SQLiteDatabase.OPEN_READONLY); 游标c=db.rawQuery(“选择文本,从tbl_定律中选择父项_id=0”,空); //注意:Master是外部数据库中的一个表。这里我们尝试从外部数据库访

我想去安卓系统中sqllite数据库的一些信息,但我不知道是什么。 我的代码是:

public Cursor getData(){
字符串myPath=DB_PATH+DB_NAME;
db=SQLiteDatabase.openDatabase(myPath,null,
SQLiteDatabase.OPEN_READONLY);
游标c=db.rawQuery(“选择文本,从tbl_定律中选择父项_id=0”,空);
//注意:Master是外部数据库中的一个表。这里我们尝试从外部数据库访问表的记录。
游标c1=db.rawQuery(“选择文本,从tbl中选择id,其中父项id=0”,null);
//注意:Master是外部数据库中的一个表。这里我们尝试从外部数据库访问表的记录。
返回c;
返回c1;

}
解决方案是调整SQL Select查询

您已经使用了rawQuery来获取信息,但是针对两个不同的cusor。这是行不通的

使用单个光标获取所需信息的解决方案可以是:

public Cursor getData() {
    String myPath = DB_PATH + DB_NAME;
    db = SQLiteDatabase.openDatabase(myPath, null,
            SQLiteDatabase.OPEN_READONLY);

    String query = "SELECT laws._id, laws.text," +
                          " nokt._id,nokt.text" +
                   " FROM tbl_laws AS laws, tbl_nokte AS nokt" +
                   " WHERE laws.parent_id = 0 AND nokt.parent_id = 0";


    Cursor c = db.rawQuery(query, null);

    return c;
}
其用途是:

public List<YourObject> getDataForYourObjects(Cursor c){
    List<YourObject> yourObjects = new ArrayList<>();
    if(c != null){
       while(c.moveToNext(){
          //law results
          long lawsID = c.getLong(0);
          String lawsText = c.getString(1);

          //nokt results
          long noktID = c.getLong(2);
          String noktText = c.getString(3);

          YourObject yo = new YourObject();
          yo.addLaw(lawID, lawText);
          yo.addNokt(noktID, noktText);
          yourObjects.add(yo);
       }
       c.close();
    }
    return yourObjects;
}
公共列表getDataForYourObjects(光标c){
列出您的对象=新建ArrayList();
如果(c!=null){
while(c.moveToNext(){
//法律结果
long lawsID=c.getLong(0);
String lawsText=c.getString(1);
//nokt结果
long noktID=c.getLong(2);
String noktText=c.getString(3);
YourObject yo=新建YourObject();
yo.addLaw(lawID,lawText);
yo.addNokt(noktID,noktText);
添加(yo);
}
c、 close();
}
归还物品;
}
(上面的示例代码未经测试!)

希望能有帮助

此外,您还可以查看SQLite教程,如: 为了更熟悉sqlite

还可以查看android SQLite教程,如:
要获取更多关于Anroids SQLite和cursor对象的信息,请提供一些示例数据和所需的输出。谢谢您的帮助。但我想通过数据库中的信息使用多个listview。我想获取多个查询并在多个类中使用。您能帮我吗?