onBackPressed with extend Fragment

时间:2017-04-18 18:35:08

标签: android android-fragments

我有一个活动用android studio扩展到AppCompatActivity:

public class Act_1 extends AppCompatActivity {

onBackPressed事件效果很好。

 @Override
 public void onBackPressed() {
        
 }

我希望在延伸到Fragment的活动中使用同样的事件:

public class Act_2 extends Fragment{

但是当我编写代码时,会出现一条关于@Override的错误消息:

“方法不会覆盖超类中的方法”

这个问题有解决方法吗?

由于

2 个答案:

答案 0 :(得分:2)

Act_2不是Activity,是FragmentonBackPressed()方法是Activity's方法,因此您无法在Fragment中覆盖它。要解决此问题,请将Act_2更改为AppCompatActivityActivity

答案 1 :(得分:0)

onBackPressed位于Activity而非Fragment之下。你可以做的是覆盖Activity中的方法。

喜欢这个::

android.support.v4.app.FragmentManager fragmentManager =
   getSupportFragmentManager();
int count = fragmentManager.getBackStackEntryCount();

if (count > 0) {
    getSupportFragmentManager().popBackStack();
} else {
    if (this instanceof HomeActivity) {
        //additional code
    } else {
        finish();
    }
}