0

電話番号を取得するためにデータベースにクエリを実行したいと思います。

選択引数で静的配列を使用する代わりに、実行時に動的に作成および入力される配列を使用したいと思います (たとえば、配列のサイズは異なります)。

次のステートメントを使用しようとしました。

Cursor phones = _ctx.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
            null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " IN  (?)",
            actioncids, null);

"actioncids" := String[] with selection args 、前のクエリの要素を含む

私はいつもエラーメッセージを受け取ります:

android.database.sqlite.SQLiteException : ハンドル 0x3c6540 の範囲外のバインドまたは列インデックス

Where節で別の表現を使用する必要があると思います。

前もって感謝します

4

1 に答える 1

0

バインド変数を String 配列に入れる必要があります。

Cursor phones =     
_ctx.getContentResolver().query(
     ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
     ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " IN  (?)",
     new String[] { actioncids }, null);

注: 複数追加する場合は、複数actioncids必要です?

これが役に立てば幸いです....乾杯!

于 2013-04-09T18:56:00.600 に答える