Em muitos aplicativos (Calendário, Drive, Play Store), quando você toca em um botão e insere uma nova atividade, o ícone na barra de título se transforma em um botão Voltar, mas para o aplicativo que estou fazendo, isso não acontece. Como faço para que esse ícone o leve de volta à tela anterior?
android
user-interface
themes
titlebar
Desenhou
fonte
fonte
Respostas:
Existem duas etapas simples para criar um botão Voltar na barra de título:
Primeiro, torne o ícone do aplicativo clicável usando o seguinte código na atividade em cuja barra de título você deseja que tenha um botão Voltar:
Depois de adicionar o código acima, você verá uma seta para trás aparecer à esquerda do ícone do aplicativo.
Em segundo lugar, depois de fazer o acima, você ainda precisa criar um código que aproveitará o evento de clique. Para isso, lembre-se de que, ao clicar no ícone do aplicativo, um
onOptionsItemSelected
método é chamado. Portanto, para voltar à atividade anterior, adicione esse método à sua atividade e coloque oIntent
código nele que o levará de volta à atividade anterior. Por exemplo, digamos que a atividade para a qual você está tentando voltar seja chamadaMyActivity
. Para voltar a ele, escreva o método da seguinte maneira:É isso aí!
(Na API de desenvolvedores do Android, recomenda-se mexer no manifesto e adicionar coisas como
android:parentActivityName
. Mas isso não parece funcionar para mim. O texto acima é mais simples e confiável.)E em sua atividade
fonte
use este código
depois disso escreva este código no
onOptionsItemSelected
métodofonte
getActionBar()
me dá um valor nulo; Você sabe por quê?Eu finalmente consegui adicionar corretamente o botão Voltar à barra de ação / barra de ferramentas
fonte
1.- Adicione a atividade a AndroidManifest.xml e certifique-se de fornecer os metadados:
2.- Adicione o seguinte código ao método onCreate da atividade:
3.- Substitua o onOptionsItemSelected e use o método estático NavUtils.navigateUpFromSameTask () para navegar e lançar a pilha.
fonte
Se sua atividade estende a atividade
Se sua ação estende AppCompatActivity
Nada mais a fazer, veja Adicionar ação
[OPCIONAL] Para definir explicitamente a atividade pai, modifique seu Manifest.xml assim:
Consulte Especificar a atividade pai
fonte
Se sua atividade se estender,
AppCompatActivity
você precisará substituir oonSupportNavigateUp()
método desta forma:Manipule sua lógica em seu
onBackPressed()
método e apenas chame esse métodoonSupportNavigateUp()
para que o botão Voltar no telefone e a seta na barra de ferramentas façam a mesma coisa.fonte
em primeiro lugar, na Função onCreate, adicione a seguinte linha
e, em seguida, adicione a seguinte função no código:
fonte
Primeiro você precisa escrever estes códigos
Em seguida, adicione esta linha no manifesto
fonte
Se você estiver usando a nova biblioteca de suporte para 5.1 no Android Studio, você pode usá-la em sua AppCompatActivity
Felicidades.
fonte
A maneira mais simples e prática recomendada conforme o Google explica aqui :
1. Adicione um pai para a atividade do seu filho no
AndroidManifest.xml
:2. Ative o botão Voltar em sua atividade infantil:
Funcionou para mim, espero que funcione para você também.
fonte
Depois de um tempo de qualidade que encontrei, a opção de tema é o principal problema no meu código E a seguir está a maneira adequada de mostrar a barra de ferramentas para mim
No arquivo AndroidManifest, primeiro você deve alterar o estilo do tema
então, em seu xml de atividades, você precisa chamar sua própria barra de ferramentas, como
E então esta barra de ferramentas deve ser chamada em seu arquivo Java por
E para a barra de ferramentas que mostra U deve verificar o nulo para evitar NullPointerException
Para atividades em casa, adicione este
OU para sua atividade desejada voltar
fonte
Eu vi tantos complexos responderem, então este é o meu código. Trabalhando aqui. Você pode conseguir isso de duas maneiras.
1) Compatibilidade com Android Stardard
2) Use um ícone personalizado
Se você quiser usar código em comentários, você só precisa adicionar este arquivo em drawable, chamado ic_arrow_white_24dp.xml
Com este código.
Espero que ajude algumas pessoas aqui!
fonte
Versão leve sem usar
ActionBarActivity
que ainda tem os mesmos comportamentos aqui:Uso: Coloque
new ToolbarConfigurer(this, (Toolbar) findViewById(R.id.my_awesome_toolbar), true);
emonCreate
.fonte
Você precisa adicionar o código mencionado abaixo no arquivo de manifesto. Pesquise a atividade na qual deseja adicionar a funcionalidade de seta para trás. Se você encontrar um, tudo bem ou crie a atividade
Em seguida, adicione as três linhas de código a seguir no meio.
E não se esqueça de adicionar este pedaço de código em onCreate (); método de sua atividade particular em que você precisa da seta para trás.
Foi assim que resolvi o problema. Obrigado.
fonte
As outras respostas não mencionam que você também pode definir isso no XML do seu
Toolbar
widget:app:navigationIcon="?attr/homeAsUpIndicator"
Por exemplo:
fonte
Tudo o que você precisa fazer em 2020:
(considerando que você deseja retornar à MainActivity)
fonte
Se estiver usando uma ActionBar, você vai querer ler esta documentação http://developer.android.com/reference/android/app/ActionBar.html#setDisplayHomeAsUpEnabled(boolean)
Em seguida, você deve sobrescrever o método onOptionsItemSelected (MenuItem) e procurar o evento android.R.id.home para entrar. Então você sabe que o usuário clicou no botão Voltar na barra de ação
fonte
Isso também pode ser feito sem código, especificando uma atividade pai no manifesto do aplicativo. Se você quiser um botão Voltar na Atividade B que irá para a Atividade A, basta adicionar a Atividade A como pai da Atividade B no manifesto.
fonte
Para kotlin:
fonte
Eu precisei misturar algumas respostas para obter a resposta certa para mim porque meu aplicativo tem 3 atividades que podem ir e voltar a qualquer momento. Atividade1> Atividade2> Atividade3. Quando eu estava fazendo algo na minha atividade3, o botão Voltar estava voltando corretamente para a Atividade2. No entanto, da Activity2, usando
finish()
, estava voltando para Activity3 e não Activity1. E estou estendendo AppCompatActivity. Então, minha solução foi:em AndroidManifest.xml:
e, finalmente, o botão de ação no meu menu (barra de ações):
Usar
NavUtils.navigateUpFromSameTask(this);
funcionou para mim, em vez definish()
.fonte
Apenas compartilhando algo que me ajudou e pode ser útil para outras pessoas. Embora a maioria das respostas aqui estejam corretas, usando o
getActionBar().setDisplayHomeAsUpEnabled(true);
, isso não funcionou para mim. O problema que tive é que estava tentando criar uma segunda Activity manualmente, mas há mais detalhes envolvidos.O que realmente resolveu meu problema foi seguir o tutorial de desenvolvedores Android ( https://developer.android.com/training/basics/firstapp/starting-activity ) para criar uma segunda atividade usando as próprias ferramentas do Android Studio:
fonte
Você também pode simplesmente colocar
onBackPressed()
seu ouvinte onClick. Isso faz com que seu botão funcione como os botões padrão "back / up" em aplicativos Android!fonte
fonte
Isso está funcionando para mim. Suponha que haja duas atividades (Activityone, Activitytwo)
Atividade interna dois usam este código
On Activityone
Isso deve ser incluído na segunda atividade dentro do arquivo de manifesto
E o resultado seria assim
fonte
fonte
Isso está funcionando para mim getSupportActionBar (). SetDisplayHomeAsUpEnabled (false); insira a descrição da imagem aqui
fonte