Я мигрировал в Компоненты навигации и, поскольку теперь я использую Фрагменты, я больше не вызываю onActivityResult () в своем Фрагменте.
Я определил аргументы, которые я передаю в AddEditTaskFragment, и хочу отправить измененные аргументы обратно в TodayFragment. Поскольку onViewCreated () вызывается каждый раз, когда я перехожу к фрагменту TodayFragment, я хочу проверить, действительно ли я передаю ему аргументы для сохранения Задачи в моей БД.
Так как AddEditTaskFragmentArgs.fromBundle (getArguments ())! = Null не работает, каков рекомендуемый способ проверки, получает ли фрагмент аргументы?
Так я возвращаюсь к вызывающему фрагменту.
AddEditTaskFragmentDirections.ActionAddEditTaskFragmentToHomeFragment action = AddEditTaskFragmentDirections.actionAddEditTaskFragmentToHomeFragment();
action.setTitle(title);
if (id != -1) action.setId(id);
action.setPriority(priority);
action.setAddanote(duedate);
action.setDuedate(remindme);
action.setRemindme(addanote);
action.setModeEdit(modeEdit);
Navigation.findNavController(getView()).navigate(action);
Теперь я хочу сделать что-то вроде:
if (AddEditTaskFragmentArgs.fromBundle(getArguments()) != ...?) {
// Receive data from action
String title = AddEditTaskFragmentArgs.fromBundle(getArguments()).getTitle().trim();
int priority = AddEditTaskFragmentArgs.fromBundle(getArguments()).getPriority();
String duedate = AddEditTaskFragmentArgs.fromBundle(getArguments()).getDuedate();
String remindme = AddEditTaskFragmentArgs.fromBundle(getArguments()).getRemindme();
String addanote = AddEditTaskFragmentArgs.fromBundle(getArguments()).getAddanote().trim();
boolean modeEdit = AddEditTaskFragmentArgs.fromBundle(getArguments()).getModeEdit();
int id = AddEditTaskFragmentArgs.fromBundle(getArguments()).getId();
Task task = new Task(title, addanote, priority, duedate, remindme);
taskViewModel.insert(task);
Toast.makeText(getContext(), "Task saved.", Toast.LENGTH_SHORT).show();
}