Junior — Middle
¿Para qué se pasan argumentos en el método de creación de Fragment y cómo afecta esto a su funcionamiento?
sobes.tech AI
Respuesta de la IA
En Android, para pasar datos a un Fragment durante su creación, generalmente se utiliza el método setArguments(Bundle). Esto permite establecer argumentos que el fragmento podrá obtener en cualquier momento de su ciclo de vida mediante getArguments().
Pasar argumentos a través de un Bundle es importante porque:
- Los argumentos se guardan y restauran por el sistema al volver a crear el fragmento (por ejemplo, al rotar la pantalla).
- Esto asegura la recuperación correcta del estado del fragmento sin necesidad de almacenar datos en campos no estables.
- Permite crear fragmentos con diferentes parámetros, haciéndolos más versátiles.
Ejemplo de creación de un fragmento con 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
}
}
De esta forma, los argumentos garantizan una transferencia segura y conveniente de datos al fragmento y su conservación al recrearlo.