this is my first question.I am using below code for remove fragment:
private boolean returnBackStackImmediate(FragmentManager fm) {
List<Fragment> fragments = fm.getFragments();
if (fragments != null && fragments.size() > 0) {
for (Fragment fragment : fragments) {
if (fragment.getFragmentManager().getBackStackEntryCount() > 0) {
if (fragment.getFragmentManager().popBackStackImmediate()) {
return true;
} else {
return returnBackStackImmediate(fragment.getChildFragmentManager());
}
}
}
}
return false;
}
Now,I want after remove fragment, if user click on Back button again, my activity be close.for that I have added these codes into my Activity:
@Override
public void onBackPressed() {
if (getSupportFragmentManager().getFragments() == null) {
finish();
} else {
if (!returnBackStackImmediate(getSupportFragmentManager())) {
super.onBackPressed();
}
}
}
but when I press back button and remove fragment and press again I got this error:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v4.app.FragmentManager android.support.v4.app.Fragment.getFragmentManager()' on a null object reference
at com.safarayaneh.notify.activities.MainActivity.returnBackStackImmediate(MainActivity.java:501)
at com.safarayaneh.notify.activities.MainActivity.onBackPressed(MainActivity.java:488)
at android.app.Activity.onKeyUp(Activity.java:2477)
at android.view.KeyEvent.dispatch(KeyEvent.java:2664)
at android.app.Activity.dispatchKeyEvent(Activity.java:2730)
I know fragment is null but which condition can I use for this situation?