【问题标题】:Using addrow for MatrixCursor, how to add different object types?使用 MatrixCursor 的 addrow,如何添加不同的对象类型?
【发布时间】:2013-08-24 11:17:19
【问题描述】:

我正在尝试将数据从 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() 时,它返回一个字符串,我无法对其执行 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;
}

【问题讨论】:

  • “我尝试执行 ParseObject.getDouble(),它返回一个字符串”- 你确定吗?
  • 对不起,我的意思是 cursor.getFloat() 返回一个字符串,将编辑我的问题

标签: android android-contentprovider android-cursor matrixcursor


【解决方案1】:

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

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

将数组类型从String 更改为Object

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多