我正在使用Action Bar和Fragment构建选项卡界面。需要帮助将数据从容器活动发送到片段。
具体来说,我在容器活动中有一个作业对象。并根据作业对象的信息创建了一些选项卡(如公司详情、经验详情等)。我需要将作业对象传递给这些片段,以便它们可以显示相应的信息。
我已经创建了容器活动和选项卡片段。我需要一个示例来演示如何在它们之间传递对象。我不能使用intent.putExtra。我能从片段访问父容器的对象吗?
任何帮助都将不胜感激。
谢谢。
我正在使用Action Bar和Fragment构建选项卡界面。需要帮助将数据从容器活动发送到片段。
具体来说,我在容器活动中有一个作业对象。并根据作业对象的信息创建了一些选项卡(如公司详情、经验详情等)。我需要将作业对象传递给这些片段,以便它们可以显示相应的信息。
我已经创建了容器活动和选项卡片段。我需要一个示例来演示如何在它们之间传递对象。我不能使用intent.putExtra。我能从片段访问父容器的对象吗?
任何帮助都将不胜感激。
谢谢。
在你的Activity中编写一个方法,例如getJob
,该方法将返回Job
对象及其相关信息。
MyActivity extends Activity{
Job mJob;
public Job getJob(){
return this.mJob;
}
}
然后在您的Fragment中执行以下操作:
MyFragment extends Fragment{
@Override
public void onActivityCreated(){
super.onActivityCreated();
((MyActivity)this.getActivity()).getJob();
}
}
使用getActivity()
方法和getJob()
方法来获取对象。
静态
变量来保存数据,并从片段内部访问该数据-这是最快的方法,但如果使用不当会创建不良设计模式。片段与片段之间通信
的方法在此处发布:http://developer.android.com/training/basics/fragments/communicating.html您可以使用示例代码仅进行活动-片段数据发送
。避免使用静态数据的方法
(1.),并包含使用ActivityGroup
的源代码示例选择哪种方法取决于您的个人喜好,这只是几个选项!"如果您需要在第一个活动中访问某些值而无需对其进行静态引用,则可以考虑将您的活动放入ActivityGroup中。"