i am trying to create a bottom sheet fragment with a recycler view. But i am getting an error in recycler view as adapter not set skipping layout
I am positive that i set the adapter for recycler view.I do not seem to understand the problem.
Bottomsheet Fragment code
public class QueueBottomSheetDialog extends BottomSheetDialogFragment {
//Views
private View fragmentView;
private RecyclerView queueRecyclerView;
private QueueRecyclerAdapter queueRecyclerAdapter;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
fragmentView = inflater.inflate(R.layout.queue_bottomsheet,container,false);
Initialize();
populateSongs();
return fragmentView;
}
private void Initialize(){
queueRecyclerView = fragmentView.findViewById(R.id.queue_recyclerView);
queueRecyclerView.setHasFixedSize(true);
}
private void populateSongs(){
queueRecyclerAdapter = new QueueRecyclerAdapter(getContext(),MusicService.songsSet);
queueRecyclerView.setAdapter(queueRecyclerAdapter);
queueRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
}
}
Code for recycler adapter
public class QueueRecyclerAdapter extends RecyclerView.Adapter<QueueRecyclerAdapter.QueueViewHolder> {
private Context context;
private SongSet songSet;
public QueueRecyclerAdapter(Context context,SongSet songSet){
this.context = context;
this.songSet = songSet;
}
@NonNull
@Override
public QueueViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(parent.getContext());
View view = layoutInflater.inflate(R.layout.queue_cardview,parent,false);
return new QueueViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull QueueViewHolder holder, int position) {
holder.songTv.setText(songSet.get(position).getTitle());
holder.artistTv.setText(songSet.get(position).getArtist());
}
@Override
public int getItemCount() {
return songSet.size();
}
public static class QueueViewHolder extends RecyclerView.ViewHolder{
private TextView songTv;
private TextView artistTv;
public QueueViewHolder(@NonNull View itemView) {
super(itemView);
songTv = itemView.findViewById(R.id.sName);
artistTv = itemView.findViewById(R.id.aName);
}
}
}
I am calling like this in my main activity
queueBottomSheetDialog queueBottomSheetDialog = newQueueBottomSheetDialog();
queueBottomSheetDialog.show(getSupportFragmentManager(),"QUEUE BOTTOMSHEET");