Проверьте, существуют ли аргументы при переходе к фрагменту с использованием SafeArgs - PullRequest
0 голосов
/ 21 апреля 2019

Я мигрировал в Компоненты навигации и, поскольку теперь я использую Фрагменты, я больше не вызываю 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...