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

Java 内容提供者查询构造和默认表,java,android,sql,Java,Android,Sql,我有一个包含表的内容提供者,我想用键值“key1”查询特定条目,因此我在我的内容提供者的query()方法中执行了以下操作: @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

我有一个包含表的内容提供者,我想用键值“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;
    }
如何构造
字符串选择
作为第二个参数?我试图将选择设置为“key='key1'”,但失败

我目前有一个内容提供商,其中只有一个表。有没有办法通过
URI
直接引用该表?现在我必须使用
URI/Table\u name


谢谢大家!

你的问题还不清楚,但可能是额外的引用才是问题所在。您的选择字符串应该类似于key=“key1”(或key='key1')

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