2

2つのアプリケーションアプリケーションAとアプリケーションBがあります。AIから画像を保存し、contentProviderを使用して2つの文字列値をデータベースに保存します。

アプリケーション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を指定しているので、データベース内のすべての値を取得しており、このループを実行する必要があります。その代わりに、正確なrawを取得するための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);

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);
于 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 に答える