Sobes.tech
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:

  1. 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"
  1. 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")
}
  1. Fragment arguments (setArguments/getArguments) — for passing data when creating a Fragment.

  2. 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.