我有两个应用程序应用程序A和应用程序B.从A我通过使用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);
所以我改变了这样但是没有用。我应该如何给出选择参数?请帮忙。
答案 0 :(得分: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);
如果activity_name是文本
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);
答案 1 :(得分:0)
你需要'?' Android用于在WHERE子句中为您输入值。 语法应该是,
Cursor c = mContext.getContentResolver()。query(allTitles,projection,“activity_name =?”,new String [] {info.activityInfo.name},null);