Sobes.tech
Junior — Middle

É possível implementar o uso de argumentos no construtor para Fragment no Android?

sobes.tech IA

Resposta da IA

No Android, não é recomendado usar construtores com argumentos para Fragment, pois o sistema pode recriar o fragment a qualquer momento chamando o construtor sem parâmetros.

A forma correta de passar dados para um Fragment é usar o método setArguments(Bundle) e obter os dados através de getArguments() dentro do fragment.

Exemplo de criação de um fragment com argumentos:

class MyFragment : Fragment() {
    companion object {
        private const val ARG_PARAM = "param"

        fun newInstance(param: String): MyFragment {
            val fragment = MyFragment()
            val args = Bundle()
            args.putString(ARG_PARAM, param)
            fragment.arguments = args
            return fragment
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val param = arguments?.getString(ARG_PARAM)
        // Usar param
    }
}

Dessa forma, os dados são armazenados em um Bundle e restaurados corretamente pelo sistema ao recriar o fragment.