内容提供者查询构造和默认表

时间:2013-02-26 20:51:10

标签: java android sql

我有一个包含表的内容提供程序,我想查询键值为“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

谢谢!

1 个答案:

答案 0 :(得分:1)

从您的问题中不清楚,但可能是额外的报价是问题。您的选择字符串应该类似 key =“key1”(或 key ='key1')。

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