'How to add "UP" back button in fragment (Fragment to Activity)
I want to go from fragment to activity using back button using toolbar back icon.

The fragment is my navigation drawer item & activity is my MainActivity.
How do I do it?
Solution 1:[1]
You can use app:navigationIcon="?attr/homeAsUpIndicator" for that back navigation icon.
<android.support.v7.widget.Toolbar
android:id="@+id/toolbarId"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:navigationIcon="?attr/homeAsUpIndicator"/>
For navigation:
Toolbar toolbar = (ToolBar) getActivity().findViewById(R.id.toolbarId);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().onBackPressed();
}
});
Solution 2:[2]
Call this method in your fragment onCreateView
public void showBackButton() {
if (getActivity() instanceof ActionBarActivity) {
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}
Solution 3:[3]
Try this worked for me :
in XML:
<android.support.v7.widget.Toolbar android:id="@+id/profileToolbar" android:layout_width="match_parent" android:layout_height="wrap_content">Create an back arrow icon in drawable folder. Name it 'ic_back_button'. Not sure how :-
just right click on drawable > new > ImageAsset > Clip Art > Search back > select > OK > Finish (don't forget to change the name).then Inside your fragment in onCreateView :
Toolbar toolbar = view.findViewById(R.id.profileToolbar); toolbar.setNavigationIcon(R.drawable.ic_back_button); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getActivity().onBackPressed(); } });
Solution 4:[4]
It might help in case if you want to come back from fragment to previous location.
Put this in your class with navController.
@Override
public boolean onSupportNavigateUp() {
navController.navigateUp();
return super.onSupportNavigateUp();
}
don't forget implement relevant dependency such as navigation and navigation UI.
Solution 5:[5]
Add this xml code to your fragment and try
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="#FFFFFF"
android:layout_gravity="center"
android:gravity="center_horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title Here"
android:typeface="serif"
android:layout_gravity="center"
android:id="@+id/toolbar_title"
android:textSize="20sp"
android:textColor="@android:color/black"/>
<ImageView
android:id="@+id/ivback_water"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:padding="15dp"
android:scaleType="fitCenter"
android:layout_gravity="left"
android:background="@drawable/ic_arrow_back_black_24dp" />
</android.support.v7.widget.Toolbar>
Solution 6:[6]
You can easily do that, if you are using a Custom back button that is placed on your Custom top app bar, in the button's onClick() function you can call.. getActivity().onBackPressed();
it would work the same as if you have clicked the android navigation's back button...
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | jazz |
| Solution 2 | sasikumar |
| Solution 3 | |
| Solution 4 | MR.Kay |
| Solution 5 | Sunil P |
| Solution 6 | Manu |
