onBackPressed() 在片段中不起作用
onBackPressed() is not working in Fragment
我想在我回来的时候完全去 phone 的家,但是 onBackPressed()
不工作。
我的页面是一个片段 btw.
在您的片段中使用 getActivity().onBackPressed();
它将执行您父 activity
的 onBackPressed()
更准确
Activity activity = getActivity();
if (activity != null) {
activity.onBackPressed();}
编辑:使用 requireActivity()
避免空指针
requireActivity().onBackPressed();
onBackPressed 回调由您的 parent activity 处理。所以你可以覆盖 parent activity
上的回调
XyzActivity.java:
@Override
public void onBackPressed() {
handleBackPress();
}
public void handleBackPress() {
Fragment visibleFragment = getSupportFragmentManager().findFragmentById(R.id.fragmentFrameLayout);
if (visibleFragment == null) {
return;
}else if (visibleFragment instanceof PreviewFragment) {
CommonFunctions.showDialogActionable(this, "Confirm", "Are you sure you want to exit?",
"Yes", (dialogInterface, i) -> {
finish();
}, "No", null, "", null, true);
return;
}else
finish();
super.onBackPressed();
}
我想在我回来的时候完全去 phone 的家,但是 onBackPressed()
不工作。
我的页面是一个片段 btw.
在您的片段中使用 getActivity().onBackPressed();
它将执行您父 activity
onBackPressed()
更准确
Activity activity = getActivity();
if (activity != null) {
activity.onBackPressed();}
编辑:使用 requireActivity()
避免空指针
requireActivity().onBackPressed();
onBackPressed 回调由您的 parent activity 处理。所以你可以覆盖 parent activity
上的回调XyzActivity.java:
@Override
public void onBackPressed() {
handleBackPress();
}
public void handleBackPress() {
Fragment visibleFragment = getSupportFragmentManager().findFragmentById(R.id.fragmentFrameLayout);
if (visibleFragment == null) {
return;
}else if (visibleFragment instanceof PreviewFragment) {
CommonFunctions.showDialogActionable(this, "Confirm", "Are you sure you want to exit?",
"Yes", (dialogInterface, i) -> {
finish();
}, "No", null, "", null, true);
return;
}else
finish();
super.onBackPressed();
}