【发布时间】:2021-05-17 05:42:35
【问题描述】:
我正在尝试从回收站视图中删除一个列表。 问题是当我删除项目时, 它会从列表中删除,但会立即重新出现。 (删除方法有效,所以该项目被删除但仍保留在列表中)
适配器
inner class AllSongsViewHolder(val binding: RcvLytAllSongsBinding) : RecyclerView.ViewHolder(
binding.root
){
init {
binding.icDelete.setOnClickListener {
onDeleteItemClickListener?.let { click -> click(song, bindingAdapterPosition)}
}
}
}
fun removeSongFromList(songList: List<Songs>, position: Int){
this.songs = songList
songList.toMutableList().removeAt(position)
notifyItemRemoved(position)
notifyItemRangeChanged(position, songList.size)
}
片段
..........
private var allSongs: List<Songs>? = null
//THIS IS THE VIEWMODEL FOR GETTING ALL ITEMS STORING IN ADAPTER
mainViewModel.mediaItems.observe(viewLifecycleOwner){ result ->
when(result.status){
Status.SUCCESS -> {
result.data?.let { songs ->
allSongsAdapter.songs = sortedBy as List<Songs>
allSongs = song
}
allSongsAdapter.setOnDeleteItemClickListener { songx, position ->
//delete
val contentResolver: ContentResolver = requireContext().contentResolver
songx.songUri?.let { it1 -> contentResolver.delete(it1, null, null) }
Toast.makeText(context, position.toString(), Toast.LENGTH_LONG).show()
//remove song from list
allSongsAdapter.removeSongFromList(allSongsAdapter.songs, position)
我试图从适配器本身做它,没有工作。
【问题讨论】:
标签: android android-studio kotlin android-recyclerview