查询有很多选择标记

时间:2013-04-09 18:44:55

标签: java android

我想查询数据库以检索电话号码。

我不想使用带选择参数的静态数组,而是想使用一个数组,它将在运行时动态创建和填充(例如数组的大小不同)。

我尝试使用以下语句:

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

“actioncids”:=带有选择参数的String [],包含来自先前查询的元素

我总是收到错误消息:

  

android.database.sqlite.SQLiteException:绑定或列索引超出范围句柄0x3c6540

我想我必须在Where-Clause中使用不同的表达式。

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要将绑定变量放入String数组中:

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

注意:如果您想添加多个actioncids,则需要多个?

希望这有帮助....干杯!