On a null object reference в RecyclerView

В BottomSheetDialog встроил RecyclerView в котором информация тянеться с Rest-api.Но у меня почему то пишет что мой адаптер для ресайкла пустой... Вот лог

03-02 11:37:00.663 27075-27075/com.example.mycinemaapp E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.mycinemaapp, PID: 27075
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.mycinemaapp/com.example.mycinemaapp.MovieDetails}: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2511)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2571)
    at android.app.ActivityThread.access$900(ActivityThread.java:165)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1409)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:171)
    at android.app.ActivityThread.main(ActivityThread.java:5620)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void androidx.recyclerview.widget.RecyclerView.setAdapter(androidx.recyclerview.widget.RecyclerView$Adapter)' on a null object reference
    at com.example.mycinemaapp.MovieDetails.initialization(MovieDetails.java:92)
    at com.example.mycinemaapp.MovieDetails.onCreate(MovieDetails.java:61)
    at android.app.Activity.performCreate(Activity.java:6320)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1121)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2464)

Вот сам адаптер

public class EpisodesAdapter extends RecyclerView.Adapter<EpisodesAdapter.EpisodesViewHolder> {
private List<Episode> episodesList;

 public EpisodesAdapter(List<Episode> episodesList) {
    this.episodesList = episodesList;
 }


@NonNull
@Override
public EpisodesViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    Context context = null;
    View view = LayoutInflater.from(context).inflate(R.layout.item_episodes_container, parent, 
 false);
    return new EpisodesViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull EpisodesViewHolder holder, int position) {

   // ((EpisodesViewHolder)holder).navigation_episode.setText("Hello");
    ((EpisodesViewHolder)holder).navigation_episode.setText(episodesList.get(position).getEpisode());
   // ((EpisodesViewHolder)holder).title_series.setText(episodesList.get(position).getName());
   // ((EpisodesViewHolder)holder).date_series.setText(episodesList.get(position).getSeason());

}

@Override
public int getItemCount() {
   return episodesList.size();
}

public void setList(List<Episode> episodesList) {
    this.episodesList = episodesList;
    notifyDataSetChanged();
}


static class EpisodesViewHolder extends RecyclerView.ViewHolder {

    private TextView navigation_episode, title_series, date_series;

    public EpisodesViewHolder(@NonNull View itemView) {
        super(itemView);
        navigation_episode = itemView.findViewById(R.id.navigation_episode);
        title_series = itemView.findViewById(R.id.title_series);
        date_series = itemView.findViewById(R.id.date_series);
    }
 }
 }  

А вот класс где я его вызываю

public class MovieDetails extends AppCompatActivity {

private MovieListViewModel movieListViewModel;
private String tvShowId;
public TVShowDetails tvShowDetails;

private Button episodes_btn;
private RecyclerView episode_recycler;
private EpisodesAdapter episodesAdapter;
private List<Episode> episodesList;

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_movie_details);

    initialization();
    getTVShowDetails();

}

private void initialization() {
episode_recycler = findViewById(R.id.episodes_recycler);

    episodesList = new ArrayList<>();
    episodesAdapter =  new EpisodesAdapter(episodesList);

    episode_recycler.setAdapter(episodesAdapter);
    episode_recycler.setLayoutManager(new LinearLayoutManager(this));

    episodes_btn =  findViewById(R.id.episodes_btn);
    episodes_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


            BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(MovieDetails.this);
            ViewGroup parent;
            ViewGroup root;
            View bottomSheetView = LayoutInflater.from(MovieDetails.this).
                    inflate(R.layout.episodes_layout, 
       (LinearLayout)findViewById(R.id.bottom_sheet_container),
                            false);

            bottomSheetDialog.setContentView(bottomSheetView);
            bottomSheetDialog.show();

        }
    });
   }
private void getTVShowDetails(){
if(getIntent().hasExtra("movie")){

MovieModel movieModel = getIntent().getParcelableExtra("movie");
tvShowId = String.valueOf(movieModel.getId());
detailsApi(tvShowId);

movieListViewModel.getDetails().observe(
                this, tvShowDetails-> {

                    if (tvShowDetails !=null){
                       episodesAdapter.setList(tvShowDetails.getEpisodes());
                    }

                }
        );
    }
}

Подскажите пожалуйста, что я не так делаю?


Ответы (0 шт):