我正在开发一个演示音乐播放器应用程序。
对于创建播放列表,我使用的是recylcerview,其中单击项目将项目添加到arraylist,然后单击鼠标单击以从arraylist中删除项目。
我已成功将这些项目添加到arraylist,但是在单击替代点击时未能删除特定索引。
ArrayList<PlayList> playListsSongs;
holder.viewForeground.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (v.getTag() == null || v.getTag().equals("NotSelected")) {
playListsSongs.add(new PlayList(songs.getSong_id(), songs.getSong_path()));
v.setTag("Selected");
} else {
// NEEDS TO REMOVE THE OBJECT ADDED TO LIST HERE
playListsSongs.remove(position);
v.setTag("NotSelected");
}
}
});
我检查了多个答案,但未成功。因此,请给我一个提示,以便我能够学习。
感谢您的时间。
答案 0 :(得分:0)
更改列表中的数据后,您需要致电notifyDataSetChanged()
来更新适配器数据。
答案 1 :(得分:0)
每次修改列表后,您都应通知适配器。
adapter.notifyItemRemoved(position)
通知删除
答案 2 :(得分:0)
设置标签是我的代码中的问题。将位置标记到recyclerview项目后,我的代码正在工作。
(")(?:(?=(\\?))\2.)*?\1)
感谢您的所有帮助!
答案 3 :(得分:0)
在onclick中使用它来删除
notifyItemRemoved(position);
notifyItemRangeChanged(position,playListsSongs.size());
notifyDataSetChanged();