Sobes.tech
Back to questions
Junior — Middle
69

Каким образом можно сохранять и повторно использовать данные внутри Fragment в Android-разработке?

Answer from AI

sobes.tech AI

В Android для сохранения и повторного использования данных внутри Fragment можно использовать несколько подходов:

  1. ViewModel — самый рекомендуемый способ. ViewModel привязан к жизненному циклу Activity или Fragment и сохраняет данные при пересоздании UI (например, при повороте экрана).
class MyFragmentViewModel : ViewModel() {
    var someData: String? = null
}

// В Fragment
val viewModel: MyFragmentViewModel by viewModels()

// Использование
viewModel.someData = "данные"
  1. onSaveInstanceState() и Bundle — для сохранения небольших данных при уничтожении Fragment системой.
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 (setArguments/getArguments) — для передачи данных при создании Fragment.

  2. Сохранение в локальное хранилище или базу данных — если данные должны сохраняться долго.

Чаще всего для временного хранения и повторного использования данных внутри Fragment используют ViewModel, так как она удобна и безопасна с точки зрения жизненного цикла.