我有一个片段活动。我在用户按下后退按钮时尝试执行某些代码。我试图在活动课程中使用这种方法:
@Override
public void onBackPressed() {
super.onBackPressed();
}
然后我用我的代码覆盖它:
@Override
public void onBackPressed() {
((MyActivity)getActivity()).onBackPressed();
doStuff();
}
我在这里尝试做的是让onBackPressed方法在片段的类中重写,然后让该方法首先在其活动中调用该方法,因为我无法调用getActivity(来自片段的onBackPressed()方法的.super.onBackPressed()。我试过这个并没有用。在活动的类中它很好地覆盖了方法,但是在片段的类中,编译器抱怨片段的onBackPressed()方法没有覆盖它中的方法&#39超级班。所以,我的问题是,我该如何正确地做到这一点?这甚至可能吗?
我可以解决我的问题的另一种方法是在我的活动中使用完整的onBackPressed()方法并让那个方法调用我的片段的方法,但我不能这样做,因为我的片段没有有一个id(它由FragmentPagerAdapter生成)。
答案 0 :(得分:0)
解决方案结果很简单。在activity类中,我创建了一个引用片段。然后我将该片段传递给FragmentPagerAdapter。回到onBackPress方法我简单地称为fragmentreference.methodinfragment()。