Junior — Middle
How can data be saved and reused within a Fragment in Android development?
sobes.tech AI
Answer from AI
In Android, to save and reuse data within a Fragment, several approaches are used:
- ViewModel — the most recommended way. ViewModel is tied to the lifecycle of an Activity or Fragment and retains data during UI re-creation (e.g., screen rotation).
class MyFragmentViewModel : ViewModel() {
var someData: String? = null
}
// In Fragment
val viewModel: MyFragmentViewModel by viewModels()
// Usage
viewModel.someData = "data"
- onSaveInstanceState() and Bundle — for saving small data when the Fragment is destroyed by the system.
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("key", someData)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val data = savedInstanceState?.getString("key")
}
-
Fragment arguments (setArguments/getArguments) — for passing data when creating a Fragment.
-
Saving to local storage or database — if data needs to be persisted long-term.
Most often, for temporary storage and reuse within a Fragment, ViewModel is used because it is convenient and lifecycle-safe.