Передача аргумента из фрагмента в действие с помощью SafeArgs - PullRequest
0 голосов
/ 01 октября 2019

Используя график навигации, когда я перемещаюсь от фрагмента к действию, а также передаю аргумент с помощью safeargs, в действии я не могу получить аргумент. Как я могу получить аргумент, передаваемый из фрагмента ???

Во фрагменте я могу получить аргумент с помощью функции getArgument(), но не в действии.

Во фрагменте я переключаюсь на другое действие с помощью:

findNavController().navigate(AFragmentDirections.actionAFragmentToBActivity(1)

и вОперация B получает аргумент в onCreate по:

val args = BActivityArgs.fromBundle(savedInstanceState!!)

, но мое приложение сразу падает.

1 Ответ

0 голосов
/ 01 октября 2019

Проверьте это в Android Doc: -

https://developer.android.com/guide/navigation/navigation-pass-data#java

Отправить данные

@Override
public void onClick(View view) {
EditText amountTv = (EditText) getView().findViewById(R.id.editTextAmount);
int amount = Integer.parseInt(amountTv.getText().toString());
ConfirmationAction action =
       SpecifyAmountFragmentDirections.confirmationAction()
action.setAmount(amount)
Navigation.findNavController(view).navigate(action);
}

Получить данные: -

@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
TextView tv = view.findViewById(R.id.textViewAmount);
int amount = ConfirmationFragmentArgs.fromBundle(getArguments()).getAmount();
tv.setText(amount + "")
}
...