机器人:从使用putExtra片段访问容器活动对象?(Android : Accessing con

2019-08-03 16:20发布

我建立使用操作栏和片段的选项卡界面。 我需要从容器活动将数据发送到片段援助。

为了详细说明,我在容器activty作业对象。 我创建了基于在作业对象(如公司的细节,细节体验等)的信息,一些标签。 我需要将作业对象传递给这些片段,使得它可以显示相应的信息。

我创建容器活动和标签片段。 我需要就如何在它们之间传递对象的例子。 我不能使用intent.putExtra。 我可以从片段访问父容器的对象?

任何帮助将不胜感激。

谢谢。

Answer 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(); 获取对象



Answer 2:

有实现这一目标的多种方式。

  1. 做一个static变量来保存你的数据,并从里面片段访问的数据-这是最快速的,但如果使用不当,它产生不好的设计模式。
  2. 的方式Fragment-to-Fragment communication possible through the parent Activity被张贴在这里: http://developer.android.com/training/basics/fragments/communicating.html您可以使用示例代码只是做一个Activity - Fragment data send
  3. 顶部投票答案在这里: 访问父活动的实例? 提到a way to avoid using static data (1),包含使用源代码的例子ActivityGroup

“如果你需要访问你的第一个活动的一些值,而不进行的静态引用它,你可以考虑把在你的ActivityGroup活动。”

你选择什么是你的偏好,这些都只是一些选择!


编辑:我不知道,如果3号将与片段工作,因为我还没有测试它类似的方法,例子是活动 - 活动通信。



文章来源: Android : Accessing container activity object from fragment using putExtra?