[RESOLVIDO] Botão voltar

Na minha aplicação Android crio uma ActionBar utilizando Toolbar, em todas minhas Activity utilizo este método para inserir a ActionBar:

protected void setUpToolbar() {
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    if(toolbar != null){
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    }
}

e no Layout XML tenho isso:

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="?attr/colorPrimary"
    android:minHeight="?attr/actionBarSize"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

Acontece que eu faço isso:

getSupportActionBar().setDisplayHomeAsUpEnabled(true);

para inserir o botão voltar na ActionBar. O botão aparece normal, mas ele não funciona, quando pressiono ele, ele não volta para a Activity anterior.

Já tentou usar esses dois?

getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

Spotik, fiz desta maneira mas continua do mesmo jeito, o botão aparece mas não volta para a Activity anterior.

Vai no manifest e coloca isso dentro da tag dessa segunda activity

android:parentActivityName="com.example.myfirstapp.activityanterior" 

Se vc não definir qual a activity pai, o botão não funciona mesmo =)

2 curtidas

Spotik, agora deu certo, mas está acontecendo uma coisa estranha, quando volto pelo botão voltar do aparelho Android não passa no método onCreate() da primeira Activity.

Mas quando volto pelo botão voltar da ActionBar está passando no onCreate() da primeira Activity.

Hmmm, não to conseguindo pensar sobre isso agora, mas, o que você pode fazer pra ter o mesmo efeito do botão voltar é:

@Override
 public boolean onOptionsItemSelected(MenuItem item) {
     switch (item.getItemId()) {
     case android.R.id.home:
         onBackPressed();
         return true;
     }
     return super.onOptionsItemSelected(item);
 }

Oi cara, hoje mais tranquilo lembrei disso aqui e lembrei o que faltou no manifest pra não ficar rechamando o oncreate:

Dentro da activity A insira tbm essa linhda de código e tudo estará resolvido

android:launchMode="singleTop"
2 curtidas

A vontade era te dar um bjo… kkkkkk
apanhando a vários dias desse botão, porém coloquei a opção “singleInstance” no lugar de “singleTop” para funcionar.