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

时间:2013-08-21 21:54:31

标签: android cursor android-contentprovider matrixcursor

我正在尝试将数据从List<ParseObject>输入到游标。可以找到ParseObject文档here

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

How to insert extra elements into a SimpleCursorAdapter or Cursor for a Spinner?

How to create Cursor data without getting data from the DataBase in Android application?

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

问题:

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

使用光标数据的方法:

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"))));
}

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;
}

我想在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;
}

1 个答案:

答案 0 :(得分:0)

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

  

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

将数组类型从String更改为Object

mc.addRow(new Object[] {1, "text", 0.666});