提问者:小点点

为什么我不能推到名单上-kotlin


我无法推到音频列表。重要提示:我不想将listOf更改为mutableListOf

private var offlineAudioList: List<Audio> = listOf(Audio())
val audio = Audio(
                    _id = cursor.getString(
                        cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID)
                    ), filePath = cursor.getString(
                        cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.RELATIVE_PATH)
                    ), title = cursor.getString(
                        cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE)
                    ), duration = cursor.getInt(
                        cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION)
                    ), writer = User(
                        image = cursor.getString(
                            cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST_ID)
                        )
                    )
                )
offlineAudioList.plus(audio)

虽然音频不是空的,但这不起作用。当我记录音频时,它给了我一个有数据的类,所以这不是问题所在。


共1个答案

匿名用户

使用var变量或属性中的只读列表时,要更改它,必须重新分配到变量/属性,因为使用plus()“添加”到它实际上是创建一个新的列表实例:

offlineAudioList = offlineAudioList.plus(audio)

// or

offlineAudioList = offlineAudioList + audio

// or

offlineAudioList += audio

此外,在声明列表的地方,您似乎可以使用emptylist()而不是listof(Audio()),除非列表中有一个空白音频项是有意义的。