I'm creating a feature for my app where a playlist is displayed and when the user clicks on the thumbnail of a video, a new activity opens which displays the video in a fragment. However the videoId doesnt seem to pass through the intent because whenever I click on the error that the bundle seems to be null. "Attempt to invoke virtual method 'java.lang.String android.os.Bundle.getString(java.lang.String)' on a null object reference"
This is my adapter class where the onClickListener is.
    public class Adapter extends RecyclerView.Adapter<ViewHolder> {
    Context context;
    Items[] items;
    public Adapter(Context context, Items[] items) {
        this.context = context;
        this.items = items;
    }
    @NonNull
    @Override
    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.item, parent, false);
        return new ViewHolder(itemView);
    }
    @Override
    public void onBindViewHolder(@NonNull ViewHolder holder, @SuppressLint("RecyclerView") int position) {
        holder.textView.setText(items[position].getSnippet().getTitle());
        Picasso.get().load(items[position].getSnippet().getThumbnails().getHigh().getUrl()).into(holder.imageView);
        holder.imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(context, ActivityVideoDetails.class);
                intent.putExtra(("videoId"), items[position].getContentDetails().getVideoId());
//                Log.d("TAG",items[position].getContentDetails().getVideoId());
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                context.startActivity(intent);
            }
        });
    }
    @Override
    public int getItemCount() {
        return items.length;
    }
}
There error appears to be from the onCreate class where the bundle is null public class
VideoFragment extends YoutubePlayerSupportFragmentX implements YouTubePlayer.OnInitializedListener {
    private OnVideoPlayListener onVideoPlayListener;
    public interface OnVideoPlayListener {
        void onPlaying(String videoId);
    }
    String videoId;
    public VideoFragment() {
    }
    @Override
    public void onCreate(Bundle bundle){
        super.onCreate(bundle);
        final Bundle arguments = getArguments();
        if(bundle!=null && bundle.containsKey("KEY_VIDEO_ID")){
            videoId = bundle.getString("KEY_VIDEO_ID");
        }
        else {
            videoId = arguments.getString("KEY_VIDEO_ID");
        }
        initialize("youtubeAPI", this);
    }
    public void setVideoId(final String mVideoId) {
        videoId = mVideoId;
        initialize("youtubeAPI", this);
    }
    @Override
    public void onInitializationSuccess(YouTubePlayer.Provider provider, YouTubePlayer youTubePlayer, boolean b) {
        if(videoId !=null){
            if(b){
                youTubePlayer.play();
            }
            else {
                youTubePlayer.loadVideo(videoId);
            }
            if(onVideoPlayListener!= null){
                onVideoPlayListener.onPlaying(videoId);
            }
        }
    }
    @Override
    public void onInitializationFailure(YouTubePlayer.Provider provider, YouTubeInitializationResult youTubeInitializationResult) {
        if(youTubeInitializationResult.isUserRecoverableError()) {
            youTubeInitializationResult.getErrorDialog(getActivity(), 1).show();
        }
    }
    @Override
    public void onSaveInstanceState(Bundle bundle){
        super.onSaveInstanceState(bundle);
        bundle.putString("KEY_VIDEO_ID", videoId);
    }
}
Here is my ActivityDetails class which calls onto the fragment
public class ActivityVideoDetails extends AppCompatActivity {
    String videoId;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video_details);
        getData();
        playVideo();
    }
    private void getData() {
        Intent intent = getIntent();
        videoId = intent.getStringExtra("videoId");
    }
    private void playVideo(){
        final YouTubeInitializationResult result = YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(this);
        if(result!= YouTubeInitializationResult.SUCCESS){
            result.getErrorDialog(this, 0).show();
            return;
        }
        final VideoFragment videoFragment = (VideoFragment) getSupportFragmentManager()
                .findFragmentById(R.id.fargment_youtube);
        videoFragment.setVideoId(videoId);
    }
}
