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.