I have try to close the current fragment by using Imagebutton.
I am in Fragment-A and it will turn to the Fragment-B when I click the button.
And when I click the button at Fragment-B , it will turn to the Fragment-C and close the Fragment-B.
If I click the back button at Fragment-C , it will back to the Fragment-A.
The code I have try is like the following
camera_album = (ImageButton) view.findViewById(R.id.camera_album);
camera_album.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
closefragment();
Fragment fragment = FileBrowserFragment.newInstance(null, null, null) ;
MainActivity.addFragment(LocalFileBrowserFragment.this, fragment) ;
}
});
private void closefragment() {
getActivity().getFragmentManager().beginTransaction().remove(this).commit();
}
When I click the back button at fragment-B , it turn to the Fragment-C.
But when I click the back button on Fragment-C , it doesn't back to the Fragment-A. It back to the empty background. If I want to back to Fragment-A , I have to click the back button once again.
SO , it seem doesn't close the current fragment complete.
How to finish the current fragment like the back button of Android ?
Try this:
So, when you press back-key, the current activity (which holds multiple fragments) will load previous fragment rather than finishing itself.
If you need to handle the action more specifically with the back button you can use the following method:
This is a Kotlin way of doing this, I have created button in fragment layout and then set onClickListner in onViewCreated.
getActivity().onBackPressed
does the all you need. It automatically calls the onBackPressed method in parent activity.For those who need to figure out simple way
Try
getActivity().onBackPressed();
Try this one