Java 无法在索引2处绑定参数,因为该索引超出范围。该语句有1个参数?
我有一个名为Java 无法在索引2处绑定参数,因为该索引超出范围。该语句有1个参数?,java,android-studio,Java,Android Studio,我有一个名为的数组字符串“likedAlbums\u name” 该数组字符串包含名称列表。我想将名称列表传递到光标的whereVal 当我在“likedAlbums\u name”数组字符串中有一个名称时,一切正常。但如果我有一个以上的名字,它就会崩溃 我该如何解决这个问题 谢谢你 代码: 代码: where查询=?只需要一个参数,但显然whereVal包含两个元素,因此查询计算器不知道哪些元素传递到查询并抛出错误我如何准确地修复它?确保whereVal只包含一个元素。例如,只取第一个,随机取
的数组字符串“likedAlbums\u name”
该数组字符串包含名称列表。我想将名称列表传递到光标的whereVal
当我在“likedAlbums\u name”
数组字符串中有一个名称时,一切正常。但如果我有一个以上的名字,它就会崩溃
我该如何解决这个问题
谢谢你
代码:
代码:
where查询
=?
只需要一个参数,但显然whereVal
包含两个元素,因此查询计算器不知道哪些元素传递到查询并抛出错误我如何准确地修复它?确保whereVal
只包含一个元素。例如,只取第一个,随机取一个,取最后一个……好吧,我理解。但是,难道没有一种方法可以处理列表中包含的所有项目吗?因为我确实需要显示列表中包含的所有项目
likedAlbums_name = database.getLikedAlbums(); // returns a list of names
public void getSongsInAlbum() {
String[] projections = {
MediaStore.Audio.Albums.ALBUM,
MediaStore.Audio.Albums.ARTIST,
MediaStore.Audio.Albums.NUMBER_OF_SONGS,
MediaStore.Audio.Albums.ALBUM_ART};
String where = MediaStore.Audio.Media.ALBUM + "=?";
String[] whereVal = likedAlbums_name;
String orderBy = MediaStore.Audio.Media.ALBUM;
ContentResolver contentResolver = getActivity().getContentResolver();
Cursor cursor = contentResolver.query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, projections, where, whereVal, orderBy);
if (cursor != null) {
if (cursor.moveToFirst()) {
do {
newAlbum newAlbum = new newAlbum();
newAlbum.albumName = cursor.getString(0);
newAlbum.artist_Name = cursor.getString(1);
newAlbum.number_of_songs_in_album = cursor.getInt(2);
album_list.add(newAlbum);
} while (cursor.moveToNext());
}
cursor.close();
}
}