使用addrow for MatrixCursor,如何添加不同的对象类型?

nom*_*mer 5 android cursor android-contentprovider matrixcursor

我正在尝试将数据从a输入List<ParseObject>到游标.ParseObject文档可以在这里找到.

我发现您可以使用MatrixCursor执行此操作,请参阅有用的网站:http: //developer.android.com/reference/android/database/MatrixCursor.html

如何为Spinner的SimpleCursorAdapter或Cursor插入额外的元素?

如何创建Cursor数据而不从Android应用程序中的DataBase获取数据?

我的问题是,当我从MyContentProvider.java返回游标时,我尝试做一个cursor.getFloat(),它返回一个String,我不能对它做DecimalFormat.

题:

如何使用addRow(Object [] columnValues)将多种数据类型放入MatrixCursor?

使用Cursor数据的方法:

public void getData() {
    Cursor cursor = getContentResolver().query(URI, null, mParseId, null, null);

    DecimalFormat df = new DecimalFormat();
    df.setMinimumFractionDigits(2);

    mTextview.setText(df.format(
        cursor.getFloat(cursor.getColumnIndexOrThrow("number"))));
}
Run Code Online (Sandbox Code Playgroud)

MyContentProvider.java:

@Override
public Cursor query(Uri uri, String[] projection, String selection,
        String[] selectionArgs, String sortOrder) {
  ......
  MatrixCursor mc = new MatrixCursor(new String[] { "_id", "title", "number" });

  mc.addRow(new String[] { ParseObject.getString("id"), ParseObject.getString("title"), ParseObject.getString("number") });
  return mc;
}
Run Code Online (Sandbox Code Playgroud)

我想在MyContentProvider.java中做什么:

@Override
public Cursor query(Uri uri, String[] projection, String selection,
        String[] selectionArgs, String sortOrder) {
  ......
  MatrixCursor mc = new MatrixCursor(new String[] { "_id", "title", "number" });

  mc.addRow(new String[] { ParseObject.getLong("id"), ParseObject.getString("title"), ParseObject.getDouble("number") });
  return mc;
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*san 0

我不确定我是否理解您的代码示例,但我可以回答您的主要问题

如何使用 addRow (Object[] columnValues) 将多种数据类型放入 MatrixCursor 中?

将数组类型从 更改StringObject

mc.addRow(new Object[] {1, "text", 0.666});
Run Code Online (Sandbox Code Playgroud)