如果想得到一个Cursor, 而此时又没有数据库返回一个Cursor,此时可以通过MatrixCursor来返回一个伪造的Cursor。比如一个程序在一般情况下用getContentReslover.query从数据库查询数据,但是在很特殊的某条件下,需要返回的只是几条固定的已知记录,不需要从数据库查询,但是为了最终结果能被调用他的方法使用,我们还是希望返回的是Cursor,那么就需要MatrixCursor根据这些已知的记录来构造一个Cursor。
也许这里有一个疑问:为什么Cursor自己不能构造一些数据呢?
因为Cursor只是一个interface,不是一个具体的类,getContentReslover.query返回的其实也不是Cursor而是Cursor的一种实现。
MatrixCursor具体使用方法如下:
假如有一个如下的数据库表结构
_id
name
price
R.drawable.ic_launcher
row139R.drawable.ic_launcher
row240R.drawable.ic_launcher
row341R.drawable.ic_launcher
row4
42现在咱们就通过MatrixCursor这个东西,来虚构出一张上面那样的表结构,下面通过一个例子,就可以完全理解MatrixCursor这个东西啦!!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Tag:
Freenovo 发表于2014-10-25 00:12:00 | 编辑 | 分享 0
引用地址: