I am using Fragments in my Application.So on the home page i have a grid view of 5 item on selection of which again i am opening a new fragment .
So what is happening is on back press it is showing a blank screen after that it is closing the application .
Please suggest me what i have done wrong in this.
MyCode
gridView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View v, int arg2,
long arg3) {
if (DASHBOARD_LINKS[arg2].equals("A")) {
fragTran.replace(R.id.content_frame,
firstFrag);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if (DASHBOARD_LINKS[arg2].equals("B")) {
fragTran.replace(R.id.content_frame, secondFrag);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
if (DASHBOARD_LINKS[arg2].equals("C")) {
fragTran.replace(R.id.content_frame, thirdFarg);
fragTran.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragTran.addToBackStack(null);
fragTran.commit();
}
}
});
Please help my this is happening
My suggestion for you is that let addToBackStack(null)
in the fragment call.
But remove this line
addToBackStack(null)
from the Homepage after which onbackpress
you are getting the blank screen hope this will for you .
Fragment showing blank solutions.
addToBackStack
() method. Because it is responsible for Navigation Back. We don't want to go back from first Page. So don't add it to backStack.fragmentTransacation.add
then while comming back from B to A. onViewCreated
or onResume
method will not called as you have added a fragment to it. So in order to hit onResume
or onViewCreated
while going back to Fragment A. you should call fragmentTransaction.replace@Override
public void onBackPressed() {
int fragments = getSupportFragmentManager().getBackStackEntryCount();
if (fragments == 1) {
finish();
} else {
if (getFragmentManager().getBackStackEntryCount() > 1) {
getFragmentManager().popBackStack();
} else {
super.onBackPressed();
}
}
}
addToBackStack() <--dont include this for your first fragment.-->
if(getSupportFragmentManager().getBackStackEntryCount() !=1){
fragmentTransaction.addToBackStack("placeholder");
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With