MatrixCursor:可以实例化的Cursor以及其应用场景

如果想得到一个Cursor, 而此时又没有数据库返回一个Cursor,此时可以通过MatrixCursor来返回一个伪造的Cursor。比如一个程序在一般情况下用getContentReslover.query从数据库查询数据,但是在很特殊的某条件下,需要返回的只是几条固定的已知记录,不需要从数据库查询,但是为了最终结果能被调用他的方法使用,我们还是希望返回的是Cursor,那么就需要MatrixCursor根据这些已知的记录来构造一个Cursor。

也许这里有一个疑问:为什么Cursor自己不能构造一些数据呢?

因为Cursor只是一个interface,不是一个具体的类,getContentReslover.query返回的其实也不是Cursor而是Cursor的一种实现。

MatrixCursor具体使用方法如下:

假如有一个如下的数据库表结构

_id

name

price

R.drawable.ic_launcher

row139

R.drawable.ic_launcher

row240

R.drawable.ic_launcher

row341

R.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

引用地址:

原文地址:https://www.cnblogs.com/freenovo/p/4469770.html