Junior — Middle
Czy można mieć pewność, że zmieniając ustawienia, zostanie wywołany dokładnie konstruktor fragmentu użytkownika?
sobes.tech AI
Odpowiedź od AI
Nie, nie można być pewnym, że podczas zmiany ustawień zostanie wywołany dokładnie konstruktor fragmentu użytkownika.
W Android system może ponownie tworzyć fragmenty, używając konstruktora bez parametrów (domyślnego), szczególnie podczas przywracania stanu po zmianie konfiguracji (np. obrót ekranu).
Dlatego zaleca się:
- Używanie domyślnego konstruktora bez parametrów.
- Przekazywanie parametrów przez
Bundleza pomocą metodysetArguments(). - Pobieranie parametrów w metodzie
onCreate()lubonCreateView()zgetArguments().
To zapewnia poprawne przywracanie stanu fragmentu przez system.
Przykład:
class MyFragment : Fragment() {
companion object {
fun newInstance(param: String): MyFragment {
val fragment = MyFragment()
val args = Bundle()
args.putString("param_key", param)
fragment.arguments = args
return fragment
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val param = arguments?.getString("param_key")
// Użyj param
}
}