Sobes.tech
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.