0

I am developing an app in which MainActivity extends Fragment. Here is I need to call onBackPressed for some usage. How can I achieve this?

I used below code which does not worked

class MainActivity extends Freagment{
.
.
.
.

Override
public void onBackPressed() {
    super.onBackPressed();
}
}

The previous page is just like this

class LoadWebData extends Activity
{
.
.
.
}
The Bala
  • 1,313
  • 1
  • 15
  • 23

2 Answers2

0

you can add the particular fragment to the backstack by calling addToBackStack method. take a look at this example.

MyDetailFragment myDetailFragment = new MyDetailFragment();
myDetailFragment.setArguments(bundle);
FragmentTransaction fragmentTransaction =
getActivity().getFragmentManager().beginTransaction();
fragmentTransaction.replace(R.id.phone_container, myDetailFragment);

/*
 * Add this transaction to the back stack. 
 * This means that the transaction will be remembered after it is 
 * committed, and will reverse its operation when later popped off 
 * the stack.
 */
fragmentTransaction.addToBackStack(null);

fragmentTransaction.commit();
slenderm4n
  • 292
  • 7
  • 15
0

Fragments do not listen to on back pressed. A common pattern I have seen used is interacting with the fragment manager from the activity to pop fragments when on back pressed is fired.... see code below!

@Override
public void onBackPressed() {

final FragmentManager fragmentManager = getFragmentManager(); 
final int count = fm.getBackStackEntryCount();

if (count == 0) {
    super.onBackPressed();
} else {
    fm.popBackStack();
}
}
Piyush
  • 18,895
  • 5
  • 32
  • 63
fergdev
  • 963
  • 1
  • 13
  • 27