Получить дополнения 1 намерения от статического фрагмента действия 2 - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть следующий сценарий.Я использую Намерение, чтобы перейти от SelectRecipeActivity к RecipeStepsActivity.Я использую связку, чтобы передать рецепт ингредиентов и шаги с этим намерением.RecipeStepsActivity содержит статический фрагмент (RecipeStepsFragment), где показаны ингредиенты и шаги рецепта.Мой вопрос: как лучше всего передать комплект намерений на RecipeStepsFragment?

Прямо сейчас я использую getActivity().getIntent().getExtras() в RecipeStepsFragment onCreateView(), чтобы получить дополнительные данные намерения от SelectRecipeActivity, и это работает без проблем.

Поскольку это не динамический фрагмент (я не использую конструктор Fragment или метод newInstance, он объявлен в xml с использованием тега <fragment>), а транзакция фрагмента не выполняется, я не могу передатьдополнения, использующие аргументы фрагмента, которые я знаю, является рекомендуемым способом.Или я могу?Я что-то пропустил?Спасибо !!

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Следуя предложению @Gabe Sechan, я использовал следующий способ для передачи пакета на RecipeStepsFragment из RecipeStepsActivity.

1) Я получаю дополнительные статистические данные от SelectRecipeActivity до RecipeStepsActivityonCreate method.

2) В методе RecipeStepsActivity onCreate я получаю ссылку на RecipeStepsFragment, вызывая findFragmentById следующим образом:

RecipeStepsFragment stepsFragment = (RecipeStepsFragment)getSupportFragmentManager()
.findFragmentById(R.id.master_steps_fragment);

3) Затем я получаю дополнения к намерениям, создающие Bundle, которые я затем передаю в качестве аргументов RecipeStepsFragment, например:

Bundle args = getIntent().getExtras();
//Pass the intent extras to the fragment using a bundle
if (args != null) {
   //show Dessert Name in Toolbar
   mRecipe = args.getParcelable(EXTRAS_RECIPE_ITEM);
   assert mRecipe != null;
   setTitle(mRecipe.getName());

   assert stepsFragment != null;
   stepsFragment.setArguments(args);
}

4) Теперьв RecipeStepsFragment 's -> onActivityCreated <- методе (чтобы убедиться, что хостинг был создан, и поэтому мы получили дополнительные сведения о намерениях от предыдущего действия), я просто получаю 3 аргумента шага, как это: </p>

Bundle fragmentArgs = getArguments();

, который содержит те же дополнительные элементы SelectRecipeActivity, переданные в RecipeStepsActivity.

0 голосов
/ 16 февраля 2019

Хорошо, я предполагаю, что вы просто имеете в виду фрагмент, определенный в xml как «статический», а не статическая переменная (что очень плохо для фрагмента).В этом случае присвойте фрагменту идентификатор, используйте findFragmentById в onCreate Деятельности, приведите его как правильный тип фрагмента и вызовите функцию во фрагменте, чтобы передать ему соответствующие данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...