我有一个活动用android studio扩展到AppCompatActivity:
public class Act_1 extends AppCompatActivity {
onBackPressed事件效果很好。
@Override
public void onBackPressed() {
}
我希望在延伸到Fragment的活动中使用同样的事件:
public class Act_2 extends Fragment{
但是当我编写代码时,会出现一条关于@Override的错误消息:
“方法不会覆盖超类中的方法”
这个问题有解决方法吗?
由于
答案 0 :(得分:2)
Act_2不是Activity
,是Fragment
而onBackPressed()
方法是Activity's
方法,因此您无法在Fragment
中覆盖它。要解决此问题,请将Act_2更改为AppCompatActivity
或Activity
。
答案 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();
}
}