如何在Android中使用Arraylist在Recyclerview中添加/删除对象?

时间:2018-08-08 12:20:48

标签: android arraylist android-recyclerview

我正在开发一个演示音乐播放器应用程序。

对于创建播放列表,我使用的是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");
                    }
                }
            });

我检查了多个答案,但未成功。因此,请给我一个提示,以便我能够学习。

感谢您的时间。

4 个答案:

答案 0 :(得分:0)

更改列表中的数据后,您需要致电notifyDataSetChanged()来更新适配器数据。

答案 1 :(得分:0)

每次修改列表后,您都应通知适配器。

adapter.notifyItemRemoved(position)

通知删除

答案 2 :(得分:0)

设置标签是我的代码中的问题。将位置标记到recyclerview项目后,我的代码正在工作。

(")(?:(?=(\\?))\2.)*?\1)

感谢您的所有帮助!

答案 3 :(得分:0)

在onclick中使用它来删除

notifyItemRemoved(position);
               notifyItemRangeChanged(position,playListsSongs.size());
           notifyDataSetChanged();