MatrixCursor和MergeCursor

1、MatrixCursor创建记录
ContentProvider对外共享数据的时候的query()方法是需要一个cursor的,
但是如果没有数据库,而项目又需要从ContentProvider读取数据的时候怎么办?
更糟糕的是其他方法操作也都是需要cursor的。
此时就需要MatrixCursor了。相当有趣,它相当于为你模拟了一个表。

?
@Override
 
public  Cursor query(Uri uri, String[] projection, String selection,
    String[] selectionArgs, String sortOrder) {
   String[] tableCursor = new  String[] { "name" , "job" , "salary"  };
   MatrixCursor cursor = new  MatrixCursor(tableCursor);
   cursor.addRow( new  Object[] { "1111" , "1111" , "1111"  });
   return  cursor;
}

2、MergeCursor 记录的合并
  1. Cursor c0 = MailboxList.this.managedQuery(  
  2.                     EmailContent.Mailbox.CONTENT_URI,  
  3.                     MailboxList.this.mListAdapter.PROJECTION,  
  4.                     MAILBOX_SELECTION0,  
  5.                     new String[] { String.valueOf(mAccountKey) },  
  6.                     MailboxColumns.TYPE);  
  7.             Cursor c1 = MailboxList.this.managedQuery(  
  8.                         EmailContent.Mailbox.CONTENT_URI,  
  9.                         MailboxList.this.mListAdapter.PROJECTION,  
  10.                         MAILBOX_SELECTION,  
  11.                         new String[] { String.valueOf(mAccountKey) },  
  12.                         MailboxColumns.TYPE/* + "," + MailboxColumns.DISPLAY_NAME*/);  
  13.             Cursor c2 = MailboxList.this.managedQuery(  
  14.                     EmailContent.Mailbox.CONTENT_URI,  
  15.                     MailboxList.this.mListAdapter.PROJECTION,  
  16.                     MAILBOX_SELECTION1,  
  17.                     new String[] { String.valueOf(mAccountKey) },  
  18.                     MailboxColumns.TYPE/* + "," + MailboxColumns.DISPLAY_NAME*/);  
  19.                  
  20.             Cursor[] cursors = new Cursor[] { c0, c1, c2 };  
  21.             Cursor c = new MergeCursor(cursors);  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值