2

我有两个应用程序应用程序 A 和应用程序 B。从 AI 中,我使用 contentProvider 将图像、两个字符串值保存到数据库中。

从应用程序 B 我正在访问这个数据库并获取图像。我正在使用的代码如下

byte b[] = null;
Cursor c = mContext.getContentResolver().query(allTitles, projection,null, null, null);
if (c.moveToFirst()) {
    do{
        if(info.activityInfo.name !=   null) {
            if(c.getString(1).equals(info.activityInfo.name)){
                b=c.getBlob(0);
            }
        }
    } while (c.moveToNext());
}
c.close();

在选择区域中,我给出了 null 所以我得到了数据库中的所有值,我必须运行这个循环。相反,我想给出一个 where 子句来获得确切的原始数据。

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name ="+info.activityInfo.name, null, null);

所以我已经像这样改变了,但它不起作用。我应该如何给出选择参数?请帮忙。

4

2 回答 2

3

尝试..

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = "+info.activityInfo.name, null, null);

or

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = ? ", new String[]{info.activityInfo.name}, null);

如果活动名称是文本

Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = "+"'"+info.activityInfo.name+"'", null, null);

    or

    Cursor c = mContext.getContentResolver().query(allTitles, projection,"activity_name = ? ", new String[]{"'"+info.activityInfo.name+"'"+}, null);
于 2012-04-18T12:25:42.913 回答
0

你需要一个 '?' 让 Android 在 WHERE 子句中为您输入值。语法应该是,

光标 c = mContext.getContentResolver().query(allTitles, projection,"activity_name =?", new String[]{info.activityInfo.name}, null);

于 2012-04-18T12:26:21.307 回答