Подтвердить что ты не робот

Android: Доступ к объекту активности контейнера из фрагмента с помощью putExtra?

Я создаю интерфейс вкладки, используя панель действий и фрагмент. Мне понадобится помощь в отправке данных из активности контейнера в фрагмент.

Чтобы уточнить, у меня есть объект задания в активности контейнера. И я создал несколько вкладок на основе информации в объекте задания (например, сведения о компании, опыт и т.д.). Мне нужно передать объект задания этим фрагментам, чтобы он мог отображать соответствующую информацию.

Я создал операцию с контейнером и фрагменты вкладок. Мне нужен пример того, как передать объект через них. Я не могу использовать aim.putExtra. Можно ли получить доступ к родительскому объекту-контейнеру из фрагмента?

Любая помощь должна быть оценена.

Спасибо.

4b9b3361

Ответ 1

Сделайте способ в вашей деятельности, например getJob, который вернет объект Job и его информацию

MyActivity extends Activity{
Job mJob;

public Job getJob(){
   return this.mJob;
 }
}

то в своем фрагменте вы выполните следующее:

MyFragment extends Fragment{

@Override
public void onActivityCreated(){
  super.onActivityCreated();
  ((MyActivity)this.getActivity()).getJob();
 }
}

используйте getActivity и метод getJob();, чтобы получить объект

Ответ 2

Существует несколько способов достижения этого.

  • Создайте переменную static, чтобы хранить ваши данные и получать доступ к этим данным изнутри фрагментов - это самый быстрый, но при неправильном использовании они создают плохие шаблоны проектирования.
  • Здесь вы найдете способ Fragment-to-Fragment communication possible through the parent Activity: http://developer.android.com/training/basics/fragments/communicating.html Вы можете использовать пример кода, чтобы просто сделать Activity - Fragment data send.
  • Ответ на главный проголосовавший здесь: Доступ к экземпляру родительской активности? упоминает a way to avoid using static data (1.) и содержит примеры исходного кода, используя ActivityGroup

"Если вам нужен доступ к некоторым значениям в вашем первом действии без статически ссылаясь на него, вы можете деятельности в ActivityGroup."

То, что вы выбираете, является вашим предпочтением, это всего лишь несколько вариантов!


Редактирование: я не уверен, что номер 3 будет работать с фрагментами, так как я не тестировал метод, подобный ему, примером является взаимодействие Activity - Activity.