我有一个包含表的内容提供程序,我想查询键值为“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
。
谢谢!
答案 0 :(得分:1)
从您的问题中不清楚,但可能是额外的报价是问题。您的选择字符串应该类似 key =“key1”(或 key ='key1')。
此外,您的提供程序可以以任何方式解释Uri,但标准方法是使用UriMatcher并使用表名指定它(与URI / Table_name一样)。