Junior — Middle
Para que servem os argumentos no método de criação de Fragment e como isso afeta o seu funcionamento?
sobes.tech IA
Resposta da IA
No Android, para passar dados para um Fragment durante a sua criação, geralmente usa-se o método setArguments(Bundle). Isto permite definir argumentos que o fragmento pode obter a qualquer momento do seu ciclo de vida através de getArguments().
Passar argumentos através de um Bundle é importante porque:
- Os argumentos são guardados e restaurados pelo sistema ao recriar o fragmento (por exemplo, ao rodar a tela).
- Isto garante a recuperação correta do estado do fragmento sem necessidade de guardar dados em campos instáveis.
- Permite criar fragments com diferentes parâmetros, tornando-os mais versáteis.
Exemplo de criação de um fragmento com argumentos:
class MyFragment : Fragment() {
companion object {
private const val ARG_USER_ID = "user_id"
fun newInstance(userId: Int): MyFragment {
val fragment = MyFragment()
val args = Bundle()
args.putInt(ARG_USER_ID, userId)
fragment.arguments = args
return fragment
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val userId = arguments?.getInt(ARG_USER_ID) ?: 0
// Usar userId
}
}
Assim, os argumentos garantem uma transferência segura e conveniente de dados para o fragmento e sua preservação ao recriá-lo.