Junior — Middle
Miks Fragmenti loomise meetodil antakse argumente ja kuidas see mõjutab selle tööd?
sobes.tech AI
Vastus AI-lt
Androidis kasutatakse tavaliselt setArguments(Bundle) meetodit andmete edastamiseks Fragmenti selle loomise ajal. See võimaldab määrata argumente, mida fragment saab saada igal ajal oma elutsükli jooksul getArguments() kaudu.
Argumentide edastamine läbi Bundle on oluline, sest:
- Argumente salvestatakse ja taastatakse süsteemi poolt fragmenti uuesti luues (näiteks ekraani pööramisel).
- See tagab fragmenti staatuse õige taastamise ilma andmeid ebastabiilsetesse väljadessalvestamata.
- See võimaldab luua fragmente erinevate parameetritega, muutes need paindlikumaks.
Näide argumentidega fragmenti loomise kohta:
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
// Kasutage userId
}
}
Sellest tulenevalt tagab argumentide kasutamine turvalise ja mugava andmeedastuse fragmenti ning nende säilitamise selle uuesti loomise ajal.