Gửi dữ liệu Arraylist<Object> từ MainActivity sang listSongFragment

Em đã thử dùng nhiều cách để gửi như bundle, intent. Em khai báo cả bằng public static rồi sang Fragment cũng không được. Em mong các anh giúp đỡ ạ. Em xin cảm ơn!

Xin truy cập bộ nhớ máy và lấy các file nhạc vào ArrayList Song Files:

private void checkPermission() {
        PermissionListener permissionlistener = new PermissionListener() {
            @Override
            public void onPermissionGranted()
            {
                SongFiles = getAllAudio(MainActivity.this);
                Bundle bundle = new Bundle();
                bundle.putParcelableArrayList("key_SongFiles", SongFiles);
                ListSongFragment listSongFragment = new ListSongFragment();
                listSongFragment.setArguments(bundle);
//Em thử gửi và nhận theo cách này không được
//Ở listSongFragment em nhận theo cách này
Bundle bundle = this.getArguments();
        ArrayList<Song> SongFiles = bundle.getParcelableArrayList("key_SongFiles");
            }

            @Override
            public void onPermissionDenied(List<StringdeniedPermissions) {
                Toast.makeText(MainActivity.this, "Permission Denied\n" + deniedPermissions.toString(), Toast.LENGTH_SHORT).show();
            }


        };
        TedPermission.create()
                .setPermissionListener(permissionlistener)
                .setDeniedMessage("If you reject permission,you can not use this service\n\nPlease turn on permissions at [Setting] [Permission]")
                .setPermissions(Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE)
                .check();

    }

Hàm lấy dữ liệu nhạc từ bộ nhớ máy hàm này em copy và chạy được ạ. Nếu dùng trong Fragment thông qua MainActivity do em khai báo public static thì cũng được nhưng em muốn học cách gửi Arraylist.

public static ArrayList<Song> getAllAudio(Context context){
        ArrayList<Song> tempAudioList = new ArrayList<>();
        Uri uri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
        String[] projection = {
                MediaStore.Audio.Media.ALBUM,
                MediaStore.Audio.Media.TITLE,
                MediaStore.Audio.Media.DURATION,
                MediaStore.Audio.Media.DATA,
                MediaStore.Audio.Media.ARTIST,
                MediaStore.Audio.Media.IS_MUSIC};
        Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);
        if (cursor !=null)
        {
            while(cursor.moveToNext())
            {

                String album = cursor.getString(0);
                String title = cursor.getString(1);
                String duration = cursor.getString(2);
                String path = cursor.getString(3);
                String artist = cursor.getString(4);
                int music = cursor.getInt(5);

                Song song = new Song(album,title,artist,duration,path,music);
                tempAudioList.add(song);
            }
            cursor.close();
        }

        return tempAudioList;
    }
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?