Android:使用putExtra从片段访问容器活动对象?
我正在使用操作栏和片段构建一个选项卡界面。我需要帮助将数据从容器活动发送到片段 更详细地说,我在容器activty中有作业对象。我还根据job object中的信息(如公司详细信息、经验详细信息等)创建了几个选项卡。我需要将作业对象传递给这些片段,以便它可以显示相应的信息 我已经创建了容器活动和选项卡片段。我需要一个关于如何在它们之间传递对象的示例。我不能使用intent.putExtra。我可以从片段访问父容器的对象吗 任何帮助都将不胜感激Android:使用putExtra从片段访问容器活动对象?,android,android-fragments,fragment,android-tabs,Android,Android Fragments,Fragment,Android Tabs,我正在使用操作栏和片段构建一个选项卡界面。我需要帮助将数据从容器活动发送到片段 更详细地说,我在容器activty中有作业对象。我还根据job object中的信息(如公司详细信息、经验详细信息等)创建了几个选项卡。我需要将作业对象传递给这些片段,以便它可以显示相应的信息 我已经创建了容器活动和选项卡片段。我需要一个关于如何在它们之间传递对象的示例。我不能使用intent.putExtra。我可以从片段访问父容器的对象吗 任何帮助都将不胜感激 谢谢。在您的活动中创建方法,例如getJob,该方法
谢谢。在您的活动中创建方法,例如
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()
获取对象有多种方法
static
变量来保存您的数据并从片段内部访问该数据-这是最快的,但如果使用不当,会创建糟糕的设计模式片段到片段通信的方法:您可以使用示例代码只执行活动-片段数据发送
一种避免使用静态数据的方法(1.),并包含使用活动组的源代码示例
编辑:我不确定数字3是否适用于片段,因为我还没有测试过类似的方法,例如“活动-活动通信”。你检查过吗?@Sandstar在我的回答中包含了你发布的链接。可能是重复的,非常感谢。我可以使用getActivity()访问该对象。@Maid786发布您的代码。我假设您向ona活动中添加了多个片段。然后将父活动类型转换为错误的类型。将所有活动都设置为IPElement某些接口,例如IParentActivity并将getActivity结果类型转换为itIt返回单个对象。我应该如何为多个对象实现这一点?@Machado只需将返回类型更改为Bundle或listThank。我正在使用格林建议的替代方案。如果我卡住了,我会试试你的建议。