ContentAdapter Sqlite数据库有多个数据库

时间:2012-09-23 00:06:44

标签: android sqlite android-contentprovider

这实际上是两个问题:

  1. 如果我在我的应用程序中将SQLite作为ContentProvider公开,它将以异步方式工作?

  2. 想象一下,我的数据库中有以下表格:

  3. TableChats TableChatMessages

    我也有一节课 Message

    要使用ListViews并使用这些列表视图,请使用ContentProvider中的数据,返回的数据必须是光标吗?或者是否可以查询聊天中的所有消息并返回Message数组。 对不起,我知道这可能是一个愚蠢的问题,但我是Android开发的新手,ContentProviderListViews的概念以及如何连接它们对我来说还不是很清楚。

1 个答案:

答案 0 :(得分:2)

据我所知

  1. A content provider管理对多个应用程序之间共享的中央数据存储库的访问。通常,所有方法都访问UI thread上的数据工作。如果您想要异步,他们建议使用CursorLoader
  2. 您可以查询所有消息,从Cursor获取数据并将其放入Message对象。
  3. 样品:

           Cursor sampleCursor = getContentResolver().query("Your query");
        ArrayList<Message> list;
            if(sampleCursor!=null){
        while(sampleCursor.moveNext()){
            Message item = new Message();
    
            item.sender = sampleCursor.getString(senderColumnIndex);
            item.messageBody= sampleCursor.getString(messageBodyColumnIndex);
        list.add(item);
        }}
    //Pass your list to your adapter.
    

    或使用CursorAdapter

    直接传递光标