Should i initialize my recyclerview in onCreateView, onViewCreated or onActivityCreated?
What's the difference between those 3, i searched for explanations but some people say to use onCreateView and some say to use onViewCreated or onActivityCreated And only to use onCreateView to inflate layout?
This is my code
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.fragment_tab1, container, false);
recyclerViewSongs = rootView.findViewById(R.id.recyclerViewSongs);
initRecyclerView();
Log.e(TAG, "onCreateView called!");
return rootView;
}
private void initRecyclerView() {
Main.musicList = Main.songs.songs;
// Connects the song list to an adapter
// (Creates several Layouts from the song list)
allSongsAdapter = new AllSongsAdapter(getContext(), Main.musicList);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity());
recyclerViewSongs.setLayoutManager(linearLayoutManager);
recyclerViewSongs.setHasFixedSize(true);
recyclerViewSongs.setAdapter(allSongsAdapter);
recyclerViewSongs.addOnItemTouchListener(new OnItemClickListeners(getContext(), new OnItemClickListeners.OnItemClickListener() {
@TargetApi(Build.VERSION_CODES.O)
@Override
public void onItemClick(View view, int position) {
Toast.makeText(getContext(), "You Clicked position: " + position, Toast.LENGTH_SHORT).show();
if (! Main.songs.isInitialized())
return;
//Start playing the selected song.
playAudio(position);
}
}));
}
onCreateView()
will be the best choice since you're usingFragment
. The difference isonCreateView()
is theFragment
equivalent ofonCreate()
for Activities and runs during theView
creation butonViewCreated()
runs after theView
has been created.And
onActivityCreated()
calls afteronCreate()
method of theActivity
completes as you can see in here: https://stackoverflow.com/a/44582434/4409113