被sqlite查询所吸引,这是我的问题,以MediaStore.audio.Artist.ARTIST为例,
String[] projection={MediaStore.Audio.Artists._ID,MediaStore.Audio.Artists.ARTIST};
String selectionClause=MediaStore.Audio.Artists.ARTIST+" = ?";
String[] selectionArgs={"Artist1","Artist2"};
在 Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 2 because the index is out of range. The statement has 1 parameters.
请告诉我这是怎么回事和正确的方法,谢谢!
您需要拥有尽可能多的'?'在"参数"中的"子句参数"中。在这种情况下,将是:
MediaStore.Audio.Artists.ARTIST+" = ? AND " + MediaStore.Audio.Artists.ARTIST+" = ?";
感谢Emanue和Cl,基于他们的想法,以下是解决方案,
MediaStore.Audio.Artists.ARTIST+" = ? OR " + MediaStore.Audio.Artists.ARTIST+" = ?";
如您所见,在这里您应该使用"而不是"one_answers",如果需要查询结果将与选择匹配。PS。Selectionargs项目的数量应与选择Clause的数量相同。
再次感谢一切!