-1

これは実際には2つの質問です。

  1. SQLiteをContentProviderアプリケーションで公開すると、非同期で動作しますか?

  2. データベースに次のテーブルがあると想像してください。

TableChats TableChatMessages

そして私もクラスを持っています Message

これらListViewsのリストビューを操作して使用するには、ContentProvider返されるデータがカーソルである必要があるからのデータを使用しますか?または、チャット内のすべてのメッセージをクエリして、の配列を返すことは可能ですかMessage。申し訳ありませんが、これはばかげた質問かもしれませんが、私はAndroid開発に不慣れであり、それらの概念とContentProvider接続ListViews方法はまだはっきりしていません。

4

1 に答える 1

2

私の知る限り

  1. Acontent providerは、複数のアプリケーション間で共有されるデータの中央リポジトリへのアクセスを管理します。通常、すべてのメソッドがデータにアクセスしますUI thread。非同期が必要な場合は、を使用することをお勧めしますCursorLoader
  2. すべてのメッセージをクエリし、オブジェクトからデータを取得Cursorしてオブジェクトに配置できますMessage

サンプル:

       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

于 2012-09-23T03:42:10.740 に答える