Назад к вопросам
Junior — Middle
70
Каким образом можно сохранять и повторно использовать данные внутри Fragment в Android-разработке?
Ответ от нейросети
sobes.tech AI
В Android для сохранения и повторного использования данных внутри Fragment можно использовать несколько подходов:
- ViewModel — самый рекомендуемый способ. ViewModel привязан к жизненному циклу Activity или Fragment и сохраняет данные при пересоздании UI (например, при повороте экрана).
class MyFragmentViewModel : ViewModel() {
var someData: String? = null
}
// В Fragment
val viewModel: MyFragmentViewModel by viewModels()
// Использование
viewModel.someData = "данные"
- 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")
}
-
Аргументы Fragment (setArguments/getArguments) — для передачи данных при создании Fragment.
-
Сохранение в локальное хранилище или базу данных — если данные должны сохраняться долго.
Чаще всего для временного хранения и повторного использования данных внутри Fragment используют ViewModel, так как она удобна и безопасна с точки зрения жизненного цикла.