在android中,如何在一个活动中调用两个数据库查询

在android中,如何在一个活动中调用两个数据库查询,android,sqlite,cursor,Android,Sqlite,Cursor,我想进行一个sql查询并将其放入TextView中。通过以下关于使用适配器/dbHelpers的教程/示例,我能够为ListView实现这一点。我收到游标IndexOutofBoundException将使我相信我没有正确使用游标 这是onCreate中的代码: TextView summaryTV = (TextView) findViewById(R.id.summary); sumAllAmounts = iouHelper.getSumAllAmounts();

我想进行一个sql查询并将其放入TextView中。通过以下关于使用适配器/dbHelpers的教程/示例,我能够为ListView实现这一点。我收到
游标IndexOutofBoundException
将使我相信我没有正确使用游标

这是onCreate中的代码:

    TextView summaryTV = (TextView) findViewById(R.id.summary);
    sumAllAmounts = iouHelper.getSumAllAmounts();
    startManagingCursor(sumAllAmounts);
    System.out.println(String.valueOf(iouHelper.getSumAllAmounts(sumAllAmounts)));
    summaryTV.setText(String.valueOf(iouHelper.getSumAllAmounts(sumAllAmounts)));
sumAllAmounts
是执行sql命令的数据库帮助程序返回的游标。我知道sql查询是正确的,因为我使用SQLite数据库浏览器测试了它。我可以使用
ArrayAdapters
ListView
上运行它

查询应返回2列:id和amount。
helper.getsumalamounts(Cursor)
将返回第二列
Cursor.getInt(1)
,并将其转换为要在TextView上显示的字符串
TextView.setText(String.valueOf(int))

请告诉我我把事情搞砸了。谢谢

编辑:

数据库的架构:

public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE ious (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, type TEXT, amount INT, description TEXT, date String);");
    }

您的bug位于
helper.getsumalamounts(游标)
中。您正在将无效的列索引传递给游标.get*函数。我需要查看您的查询投影字符串和对游标的调用。get*可以准确地告诉您出了什么问题。

这里的问题可能是您需要调用游标。moveToFirst()来定位游标?此外,您的查询也无法工作。您不能选择_id和sum(amount)。尝试只选择sum(amount),然后将
c.getInt(1)
更新为
c.getInt(0)
public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE ious (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, type TEXT, amount INT, description TEXT, date String);");
    }