Android : Accessing container activity object from fragment using putExtra?

时光毁灭记忆、已成空白 提交于 2019-12-03 06:26:15
Greensy

Make the method in your activity, e.g getJob that will return the Job object and its information

MyActivity extends Activity{
Job mJob;

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

then in your Fragment you do this:

MyFragment extends Fragment{

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

use getActivity and the method getJob(); to get the object

LonWolf

There are multiple ways of achieving this.

  1. Make a static variable to hold your data and access that data from inside the fragments - this is the most fast but it creates bad design patterns if used improperly.
  2. A way of Fragment-to-Fragment communication possible through the parent Activity is posted here: http://developer.android.com/training/basics/fragments/communicating.html You can use the sample code to just do a Activity - Fragment data send.
  3. The top voted answer here: Accessing instance of the parent activity? mentions a way to avoid using static data (1.) and contains source code examples using ActivityGroup

"If you need access to some values in your First activity without making a static reference to it, you could consider putting your activities in an ActivityGroup."

What you choose is your preference, these are just a few options!


Edit: I'm not sure if number 3 will work with fragments since I haven't tested a method similar to it, the example is Activity - Activity communication.
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!