Android - 将两个数据库中的数据拉入一个游标

时间:2011-03-24 22:12:30

标签: java android sqlite

我做了一个笔记记录应用程序,通过联系人组织笔记。我想要为每个列表项创建一个包含两行的ListActivity。第一行将具有用户分配给注释的基本标题。第二行我想在那里放置联系人姓名。我不知道如何开始这样做。我在过去两天一直在研究,在这里和那里尝试代码,似乎没有任何东西正确地组合在一起。我一直想回到MergeCursor,但是我无法让它正常工作,我找不到任何可以帮助我理解它的好例子。

我的主数据库表是:_id,contactId,title,body,datetime。

创建注释时,内置联系人数据库中的联系人ID将传递到我的数据库中的行。我确信这很简单但我似乎无法得到它!任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:1)

尝试使用CursorJoiner。也不建议加入Contacts _ID列,因为这可以通过同步或聚合操作进行更改。使用LOOKUP_KEY上的Contacts

答案 1 :(得分:0)

我的建议是继续使用MergeCursor并谨慎对待

  

“调用getColumns,getColumnIndex,   etc将返回该行的值   MergeCursor目前是   指着。“

当你需要一个字符串时,就像

一样
String body = cursor.getString(cursor.getColumnIndex(MySqlDatabase.KEY_BODY));

这是您应尝试使用的格式,无论MergeCursor还是常规Cursor

答案 2 :(得分:0)

或者实际上,我可能误解了你的问题,所以我发布了另一个答案。听起来你的布局本身有问题,而不是存储/检索数据的技术部分。

如果是这种情况,我会推荐你​​Layout Tricks: Creating Efficient Layouts,它会显示你可以做的几件不同的事情。

基本上,有一段声明Linear Layout的xml代码,它有两个子节点,两个子节点都是TextView。当您在SimpleCursorAdapter中使用ListActivity(我推荐)时,请将SimpleCursorAdapter构造函数中的最后一个字段“设为”new int[]{R.id.text1, R.id.text2},即TextViews您存储在xml中的{{1}}。

我指的是SimpleCursorAdapter构造函数。

这有帮助吗?