Android Content -Provider查询条件问题



被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的数量相同。

再次感谢一切!

最新更新