0

我有一个包含表的内容提供程序,并且我想使用键值"key1"查询特定条目,因此我在query()内容提供程序的方法中执行了以下操作:

    @Override
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        qb.setTables(TABLE_NAME);
        Cursor c = qb.query(db, projection, selection, null, null, null, sortOrder);
        c.setNotificationUri(getContext().getContentResolver(), uri);
        return c;
    }

如何构造String selection第二个参数?我试图将选择设置为“key='key1'”但失败了。

我目前有一个内容提供商,其中只有一张表。有没有办法直接通过 引用表格URI?现在我必须使用URI/Table_name.

谢谢!

4

1 回答 1

1

您的问题尚不清楚,但可能是额外的引号是问题所在。您的选择字符串应该类似于key="key1"(或key='key1')。

此外,您的提供者可以以任何它想要的方式解释 Uri,但标准方式是使用 UriMatcher 并使用表名指定它(就像您使用 URI/Table_name 一样)。

于 2013-02-26T21:35:12.887 回答