如何刷新recyclerview?

我制作了一个带有片段的mediaplayer应用;歌曲,专辑,艺术家,流派,播放列表


这是我的片段之一中的代码,我将以Artists为例


@Override

public View onCreateView(LayoutInflater inflater, ViewGroup container,

                         Bundle savedInstanceState) {

    // Inflate the layout for this fragment

    View rootView = inflater.inflate(R.layout.fragment_tab3, container, false);

    recyclerViewArtists = rootView.findViewById(R.id.recyclerViewArtists);


    initRecyclerView();


    return rootView;

}


private void initRecyclerView(){

    items = Main.songs.getArtists();


    if ((items != null) && (! items.isEmpty())) {

        adapter = new Adapter(getContext(), items);

        recyclerViewArtists.setLayoutManager(new LinearLayoutManager(getActivity()));

        recyclerViewArtists.setHasFixedSize(true);

        recyclerViewArtists.setAdapter(adapter);

        Log.i(TAG, "Artists found in list!");


    recyclerViewArtists.addOnItemTouchListener(new OnItemClickListeners(getContext(), new OnItemClickListeners.OnItemClickListener() {

        @TargetApi(Build.VERSION_CODES.O)

        @Override

        public void onItemClick(View view, int position) {

            Toast.makeText(getContext(), "You Clicked position: " + position + " " + items.get(position) , Toast.LENGTH_SHORT).show();

            if (! Main.songs.isInitialized()){

                return;

            }


在我的initRecyclerView()方法中,我有一个名为“ items”的数组列表,用于保存歌曲艺术家。Main.songs.getArtist-> Main是一个类,它包含一个称为“ songs”的公共静态数组列表,并且该数组列表使用模型类Song来保存setter和getters(getArtists();)


现在,当用户单击艺术家时,另一个活动将启动ListSongsActivity.java

我的问题从这里开始,所以说我们从列表中选择Artist A-> ListSongsActivity开始-> ex。播放3位艺术家A演唱的歌曲。

然后,当我按“后退”按钮返回时,选择“歌手B”并单击其中一首歌曲,它仍会播放歌手“ A”的歌曲。出于某种原因,我在应用程序中的所有recyclerviews仅被歌手A的歌曲覆盖。

即使在显示所有歌曲的第一个片段中,当我单击其中的歌曲时,它也只会播放我在“艺术家”标签中选择的艺术家的歌曲,而当位置超过3时选择另一首歌曲时,它会崩溃。

当我单击后退按钮时,如何更新我的回收站视图?

如果您不理解我的文章,我将在github的保管箱中添加代码,以便您自己进行测试。


沧海一幻觉
浏览 181回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java