0

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

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

我尝试使用以下语句:

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

"actioncids" := String[] 与选择 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 回答