My app has structure like this
MainActivity extends ActionBarActivity -- on button press -> ListFragment --on list item press--> Fragment
When in Fragment and if back key is pressed it goes to MainActivity directly . How do I make it to go to the ListFragment
Following is what I expect it to do
Fragment *----on back key pressed-->*ListFragment --on Back Key pressed ---> MainActivity extends ActionBarActivity
Following code is what I am using in mainactivity and listfragment to start any fragment
.........................................
case 5:
fragment = new HomeFragment();
break;
default:
break;
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
// update selected item and title, then close the drawer
mDrawerList.setItemChecked(position, true);
mDrawerList.setSelection(position);
//getSupportActionBar().setSubtitle(navMenuTitles[position]);
//setTitle(navMenuTitles[position]);
mDrawerLayout.closeDrawer(mDrawerList);
} else {
// error in creating fragment
Log.e("MainActivity", "Error in creating fragment");
}
UPDATE
Now I have added the following code to my MainActivity
@Override
public void onBackPressed() {
Fragment frag = getSupportFragmentManager().findFragmentById(R.id.frame_container);
if((frag instanceof CommonMasjidPrayerTimes)) {
finish();
}
}
And following code to my listfragment
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
// fragmentManager.beginTransaction().replace(R.id.frame_container, fragment).commit();
if (masjidNamazTimings != null) {
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.addToBackStack(null);
ft.replace(R.id.frame_container, masjidNamazTimings).commit();
}
Now when I press the backbutton on my list fragment or fragment it doesnt go back
Your code should look like this:
FragmentTransaction ft = fragmentManager.beginTransaction();
ft.replace(R.id.frame_container, fragment).commit();
ft.addToBackStack(null);
Try this. This will work.