should I use newInstance function somewhere?

Viewed 47

I'm new in kotlin and android development.

I was following a tutorial, in that tutorial in a fragment class, companion object, defined a method named newInstance() that returned a fragment, the method was never used.

class myFragment : Fragment(){
    companion object {

        fun newInstance(foo:Int): myFragment {
            val fragment = myFragment()

            val args = Bundle()
            args.putString("foo", foo)
            fragment.arguments = args

            return fragment
        }
    }
}     

Is that okay? Is that going to call it automatically or should I call it somewhere?

(sorry if the explanation isn't good)

2 Answers

It not gonna be used automatically, it is just one of the ways to create fragments. Basically you need to call this function in the place where you wish to add/ replace this fragment into it's container with the help of FragmentManager

You need to use supportFragment manager in your activity to replace the fragment

 val transition = supportFragmentManager.beginTransaction()
 transition.addToBackStack("Your_fragment_unique_tag")
 transition.replace(containerViewId, fragment).commit()

containerViewId will be FrameLayout id in your activity which is the container for replacing fragment i.e R.id.mainContainer

Related