从片段

时间:2015-09-22 15:03:19

标签: android-activity methods fragment

我有一个片段活动。我在用户按下后退按钮时尝试执行某些代码。我试图在活动课程中使用这种方法:

@Override
public void onBackPressed() {
    super.onBackPressed();
}

然后我用我的代码覆盖它:

@Override
public void onBackPressed() {
    ((MyActivity)getActivity()).onBackPressed();
    doStuff();
}

我在这里尝试做的是让onBackPressed方法在片段的类中重写,然后让该方法首先在其活动中调用该方法,因为我无法调用getActivity(来自片段的onBackPressed()方法的.super.onBackPressed()。我试过这个并没有用。在活动的类中它很好地覆盖了方法,但是在片段的类中,编译器抱怨片段的onBackPressed()方法没有覆盖它中的方法&#39超级班。所以,我的问题是,我该如何正确地做到这一点?这甚至可能吗?

我可以解决我的问题的另一种方法是在我的活动中使用完整的onBackPressed()方法并让那个方法调用我的片段的方法,但我不能这样做,因为我的片段没有有一个id(它由FragmentPagerAdapter生成)。

1 个答案:

答案 0 :(得分:0)

解决方案结果很简单。在activity类中,我创建了一个引用片段。然后我将该片段传递给FragmentPagerAdapter。回到onBackPress方法我简单地称为fragmentreference.methodinfragment()。