Android Back Arrow on Toolbar (AppCompatActivity)
You can also just declare in the Manifest
a ParentActivity
with:<activity android:name=".ThisActivity" android:parentActivityName=".TheActivityThatCalledThisOne"> </activity>
I wonder why there's not a complete answer for this on SO, but finally I solved the matter on my own:
Use the following snippet to have back button on the toolbar in an AppCompatActivity:
toolbar = (Toolbar) findViewById(R.id.hack_toolbar); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //do something you want } });
Update
private lateinit var toolbar: Toolbar override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val binding = DataBindingUtil.setContentView<DetailActivityBinding>( activity, R.layout.detail_activity ) toolbar = binding.toolbar activity.setSupportActionBar(toolbar) activity.supportActionBar!!.setDisplayShowHomeEnabled(true) activity.supportActionBar!!.setDisplayHomeAsUpEnabled(true) }
Original
@BindView(R.id.toolbar) Toolbar toolbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_user_events); ButterKnife.bind(this); setSupportActionBar(toolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override public boolean onSupportNavigateUp() { onBackPressed(); return true; }
onSupportNavigateUp()
This method is called whenever the user chooses to navigate Up within your application's activity hierarchy from the action bar.
onBackPressed();
Take care of popping the fragment back stack or finishing the activity as appropriate.