Не понимаю , как передать данные из активити во фрагмент
Я только начинаю работать с андроид , поэтому прошу не ругать.Я передаю ArrayList из активити во фрагмент, но не понимаю как его там получить и присвоить куда-то
это я так пытаюсь передать
val dataList=myDbManager.ReadDb()
val bundle=Bundle()
bundle.putSerializable("1",dataList)
offline_avtonomnoe.getNewInstance(bundle)
А вот так пытаюсь принять
companion object{
fun getNewInstance(args:Bundle):offline_avtonomnoe{
val offlineFragment=offline_avtonomnoe()
offlineFragment.arguments=args
return offlineFragment
}
}
Иду ли я в правильном направлении? и как это все записать во фрагменте в нормальный ListArray ,а не в аргументы какие-то
Ответы (2 шт):
Определите например в вашей activity метод getList() возвращающий ваш list. Потом из фрагмента можете забрать его getActivity.getList(); Или сохраните в статическую переменную ваш list в activity и получите ее из фрагмента getActivity.list; Или в activity :
Bundle bundle = new Bundle;
bundle.putSerializable ("list", yourList);
YourFragment fragment = new YourFragment;
fragment.setArguments(bundle);
Позже когда откроете Ваш fragment в нем:
getArguments.getSerializable("list");
Пишу на jave а там разберетесь =)
Это не очень хороший подход. Обычная практика передавать из активности во фрагмент идентификатор какой-то определенной строки в базе к примеру. Но передавать через аргументы весь список это оверхед. Намного удобнее и логичнее запросить этот список в самом фрагменте. То есть данные между различными экранами обычно передают через модель.