美文网首页工作生活
Android 了利用MatrixCursor模拟Cursor

Android 了利用MatrixCursor模拟Cursor

作者: feifei_fly | 来源:发表于2019-07-02 09:49 被阅读0次

在开发APP的时候,如果需要一个cursor而没有一个现成的cursor,那么可以实现一个虚拟的表,就是使用MatrixCursor。

比如说在使用ContentProvider的时候,数据源可以使用sqlite也可以使用SharePreference,但是ContentProvider的重载方法必须要返回一个cursor,那么这个时候就可以使用MatrixCursor。

只需要三步:

步骤1.首先创建一个字符数组,且字符数组的值对应着表的字段,如下:

  String[] COLUMN_NAME = { "_id", "name", "price" };
步骤2.利用MatrixCursor的构造方法,构造一个MatrixCursor,传入的参数即是步骤1中创建的字段数组,如下:
  

MatrixCursormatrixCursor=newMatrixCursor(COLUMN_NAME);
也可以指定初始大小,如:
matrixCursor=newMatrixCursor( COLUMN_NAME, 10);

步骤3. 通过matrixCursor 的addRow方法添加一行值,相当于向数据库中插入一条记录,如下:

matrixCursor.addRow(new Object[] { R.drawable.ic_launcher, "zhangsan",39 });

注:步骤3也可以通过构造一个MatrixCursor.RowBuilder来实现,也是相当于向数据库中插入一条记录,如下:
MatrixCursor.RowBuilder builder1 = matrixCursor.newRow();
builder1.add(R.drawable.ic_launcher);
builder1.add("zhangsan");
builder1.add(39);

参考文章:

https://www.jianshu.com/p/a97d2cec0b16

相关文章

网友评论

    本文标题:Android 了利用MatrixCursor模拟Cursor

    本文链接:https://www.haomeiwen.com/subject/mtwacctx.html