2017-08-10 71 views
0

在我的片段中,我有一个“解除”按钮,该按钮的行为应取决于哪个Activity称为其父活动(如TutorialActivity)。获取调用片段的父活动的活动

在TutorialActivity中,我已经确定哪个Activity调用它。如何将数据传递给片段?

我的片段驻留在PagerAdapter,我不希望需要通过这个信息作为“的newInstance()”参数每一次,因为它似乎矫枉过正,考虑到这个参数是相同的对于我的FragmentStatePagerAdapter中的每个片段。

+1

“我不想每次都需要将此信息作为'newInstance()'参数传递,因为它似乎是一种矫枉过正” - 这听起来像是一个很好的解决方案。另一种选择可能涉及使用'BroadcastReceiver'和'LocalBroadcastManager',但这听起来更像是矫枉过正。 – PPartisan

+0

使用单身或静态对象我不真的支持静态,但仍然可以做,因为它有很多使用 – g7pro

回答

0

您可以通过公开此变量来访问教程活动中的变量。假设变量名称是父项。你可以通过使用TutorailActivity的实例来访问它(假设fragment中使用的Activity的实例是mTutorialActivity),那么它应该像mTutorialActivity.parent。 但是您需要传递TutorialActivity的实例,因为它可能用于其他目的,例如从strings.xml和其他目的获取字符串。所以,传递Activity实例而不是变量会是有益的。

0

我最终做了什么:我在TutorialActivity本身实现了“不同的行为”,将解除按钮从片段中移出。然后在它里面有一个简单的onClickListener和一个switch语句。