Я делаю базовое c приложение для отслеживания привычек. У меня есть класс фрагмента под названием HabitFragment (это фрагмент, потому что это всего лишь одна часть приложения с несколькими вкладками), который отображает список привычек (которые являются объектами настраиваемого класса привычек и содержат имя, частоту и т. Д. c) , на каждом из которых есть кнопка «журнал». Эта кнопка журнала переводит пользователя к другому действию под названием HabitLog, где он сообщает, в какую дату и время он выполнил указанную привычку. В этом упражнении у меня есть ArrayList настраиваемых объектов, в которых хранятся дата и время привычки, записанной пользователем, метко названной HabitDateAndTime. Я хочу иметь возможность отправить этот ArrayList обратно в класс HabitFragment одним нажатием кнопки. Я не могу заставить его работать.
Я пробовал это в методе onCreate моего действия HabitLog. Он основан на том, что я мог найти в старых сообщениях на этом сайте:
doneButton.setOnClickListener(v -> {
Gson gson = new Gson();
Intent data = new Intent();
data.putExtra("dateTimes", gson.toJson(datesAndTimes));
setResult(RESULT_OK, data);
finish();
});
и в onResume HabitFragment:
public void onResume() {
super.onResume();
Gson gson = new Gson();
Intent intent = this.getActivity().getIntent();
String str = intent.getStringExtra("datesTimes");
List<HabitDateAndTime> datesTimes = gson.fromJson(str, List.class);
}
Но когда я проверяю значение dateTimes, он говорит null, даже если я добавляю к нему что-то в дочернем действии.
Как правильно отправить ArrayList настраиваемых объектов из дочернего действия в родительский?