Передача данных с использованием компонента навигации. Почему мне нужны значения для конструктора, а руководство - нет? - PullRequest
0 голосов
/ 09 апреля 2020

Я использую это android руководство для передачи данных между пунктами навигации.

В приведенном ниже фрагменте кода показано, что руководству не нужны никакие значения, передаваемые в конструктор, и он устанавливает значения, а не передает их:

@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);
}

Однако, когда я я пытаюсь следовать этому, как руководство направляет, настаивает на том, чтобы я поставил элементы pass, которые я хочу установить только:

enter image description here

Вот части, относящиеся к the nav_graph. xml:

Назначение:

enter image description here

Действие:

enter image description here

Я спрашиваю, потому что даже только передавая их как параметры или передавая их как параметры и устанавливая их также, программа утверждает, что не получила ни одного из элементов.

1 Ответ

0 голосов
/ 09 апреля 2020

Вы можете использовать это для передачи данных (т.е. Bundle), используя Navigation Architecture Component

EditText amountTv = (EditText) getView().findViewById(R.id.editTextAmount);
int amount = Integer.parseInt(amountTv.getText().toString());
Bundle bundle = new Bundle();
bundle.putInt("AMOUNT",amount);
findNavController().navigate(R.id.IdOfTheFragemntYouAreTryingToNavigate, bundle, null, null)
...