Junior — Middle
Kas on võimalik olla kindel, et seaded muutes kutsutakse just kasutaja konstruktor?
sobes.tech AI
Vastus AI-lt
Ei, ei saa olla kindel, et konfiguratsiooni muutmisel kutsutakse täpselt kasutaja fragmenti konstruktor.
Android süsteem võib uuesti luua fragmentide kasutades parameetritut (vaikimisi) konstruktorit, eriti pärast konfiguratsiooni muutust (näiteks ekraani pööramist).
Seetõttu soovitatakse:
- Kasutada vaikimisi parameetritut konstruktorit.
- Edastada parameetreid
Bundlekaudu kasutades meetoditsetArguments(). - Parameetreid välja lugeda
onCreate()võionCreateView()meetoditesgetArguments()-st.
See tagab süsteemi poolt korrektse fragmenti oleku taastamise.
Näide:
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")
// Kasutada param
}
}