I am trying to add a list of audio files to my fragment. I have also set the layout manager to recycler view. I have also added dependencies to gradle build
Here is the error:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View androidx.recyclerview.widget.RecyclerView.findViewById(int)' on a null object reference
at com.example.musicplayer.AllSongs.onCreateView(AllSongs.java:35)
at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2698)
I am trying to get all songs in my all songs fragment. Here is my code which shows error:
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
recyclerView = recyclerView.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
if (!(musicFiles.size() < 1))
{
musicAdapter = new MusicAdapter(getContext(),musicFiles);
recyclerView.setAdapter(musicAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
return inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
}
Try with
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
musicFiles = new ArrayList();
if (!(musicFiles.size() < 1))
{
musicAdapter = new MusicAdapter(getContext(),musicFiles);
recyclerView.setAdapter(musicAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
}
return view;
}
Your app is crash at below line
recyclerView.findViewById(R.id.recyclerView);
Do as per below
onCreateView(.....){
View v = inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
recyclerView = v.findViewById(R.id.recyclerView);
....
....
return v ;
}
the error is fixed here is the solution
What I have done:
earlier I was returning onCreateView
function but after returning inflater in View
my code was fixed and list of audio files was shown
View view = inflater.inflate(R.layout.fragment_all_songs_tab, container, false);
recyclerView = view.findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
musicAdapter = new MusicAdapter(getContext(), musicFiles);
recyclerView.setAdapter(musicAdapter);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext(), RecyclerView.VERTICAL, false));
musicAdapter.notifyDataSetChanged();
return view;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.