Eu quero fazer algo simples no aplicativo Android. Como é possível voltar a uma atividade anterior.
Qual código eu preciso para voltar à atividade anterior
Eu quero fazer algo simples no aplicativo Android. Como é possível voltar a uma atividade anterior.
Qual código eu preciso para voltar à atividade anterior
Respostas:
As atividades do Android são armazenadas na pilha de atividades. Voltar a uma atividade anterior pode significar duas coisas.
Você abriu a nova atividade de outra atividade com startActivityForResult . Nesse caso, você pode simplesmente chamar a função finishActivity () do seu código e isso o levará de volta à atividade anterior.
Acompanhe a pilha de atividades. Sempre que você inicia uma nova atividade com uma intenção, pode especificar um sinalizador de intenção como FLAG_ACTIVITY_REORDER_TO_FRONT
ou FLAG_ACTIVITY_PREVIOUS_IS_TOP
. Você pode usar isso para alternar entre as atividades em seu aplicativo. Ainda não os usei muito. Dê uma olhada nas bandeiras aqui: http://developer.android.com/reference/android/content/Intent.html
Conforme mencionado nos comentários, se a atividade for aberta com, startActivity()
então pode-se fechá-la finish()
. Se você deseja usar o botão Para cima, pode capturá-lo no onOptionsSelected(MenuItem item)
método, verificando o ID do item, android.R.id.home
diferente do R.id.home
mencionado nos comentários.
Tente Activity#finish()
. Isso é mais ou menos o que o botão Voltar faz por padrão.
this.finish();
#
é um indicador que finish()
é um método não estático da classe Activity. Não é Java válido, mas ajuda a explicar como se pode usar o método.
.
, ou seja:Activity.someStaticMethod()
Basta escrever no clique em Concluir () . O levará para a Atividade anterior.
Só isso
super.onBackPressed();
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Isso levará você a uma atividade anterior, mantendo sua pilha e limpando todas as atividades depois da pilha.
Por exemplo, se a pilha era A-> B-> C-> D e você inicia B com esse sinalizador, a pilha será A-> B
Você deseja controlar o comportamento do botão Voltar? Você pode substituir o botão Voltar (para acessar uma atividade específica) através de um dos dois métodos.
Para o Android 1.6 e abaixo:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
Ou se você suporta apenas o Android 2.0 ou superior:
@Override
public void onBackPressed() {
// do something on back.
return;
}
Para mais detalhes: http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html
Basta chamar esse método para concluir a atividade atual ou voltar ao onBackPressed
finish();
OU
onBackPressed();
se você quiser ir, só quer ir para a atividade anterior, use
finish();
OU
onBackPressed();
se você quiser ir para a segunda atividade ou abaixo, use o seguinte:
intent = new Intent(MyFourthActivity.this , MySecondActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
//Bundle is optional
Bundle bundle = new Bundle();
bundle.putString("MyValue1", val1);
intent.putExtras(bundle);
//end Bundle
startActivity(intent);
Adicione isso ao seu método onCLick (), ele voltará à sua atividade anterior
terminar();
ou Você pode usar isso. Funcionou perfeitamente para mim
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Se você configurou corretamente o arquivo AndroidManifest.xml com a atividade pai, poderá usar:
NavUtils.navigateUpFromSameTask(this);
Onde esta é a sua atividade infantil.
Tente fazer isso, pois você deve pressionar o botão Voltar
finish();
onBackPressed();
Você pode ligar explicitamente onBackPressed
da maneira mais fácil.
Consulte Voltar à atividade anterior para obter detalhes
Inicie a segunda atividade usando intent (use startActivity
ou de startActivityForResult
acordo com seus requisitos). Agora, quando o usuário pressionar o botão Voltar, a atividade atual na parte superior será fechada e a anterior será exibida.
Agora, digamos que você tenha duas atividades, uma para selecionar algumas configurações para o usuário, como idioma, país etc., e após selecioná-lo, o usuário clica no botão Avançar para acessar o formulário de login (por exemplo). Agora, se o login não tiver êxito, o usuário estará na atividade de login, e se o login for bem-sucedido?
Se o login for bem-sucedido, você deverá iniciar outra atividade. Isso significa que uma terceira atividade será iniciada e ainda existem duas atividades em execução. Nesse caso, será bom usar startActivityForResult
. Quando o login for bem-sucedido, envie os dados OK de volta à primeira atividade e feche a atividade de login. Agora, quando os dados forem recebidos, inicie a terceira atividade e feche a primeira, usando Concluir.
@Override
public void onBackPressed() {
super.onBackPressed();
}
e se você quiser no botão, clique em voltar e simplesmente coloque
bbsubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onBackPressed();
}
});
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if ( id == android.R.id.home ) {
finish();
return true;
}
return super.onOptionsItemSelected(item);
}
Tente isto funciona tanto no botão voltar barra de ferramentas como botão de hardware para trás .
Existem alguns casos para voltar à sua atividade anterior:
Caso 1: se você deseja retornar o resultado à sua atividade anterior, ActivityA.java
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivityForResult(intent,2);
FBHelperActivity.java
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
Caso 2: ActivityA -> FBHelperActivity ----> ActivityA
ActivityA.java
Intent intent = new Intent(ActivityA.this, FBHelperActivity.class);
startActivity(intent);
FBHelperActivity.java
after getting of result call finish();
By this way your second activity will finish and because
you did not call finish() in your first activity then
automatic first activity is in back ground, will visible.
Depois disso, você tem duas maneiras de voltar da atividade atual para a atividade anterior:
Simplesmente chame: finish()
em botão, clique em ouvinte, ou Substitua o seguinte método para voltar usando o botão voltar do sistema:
@Override
public void onBackPressed() {
super.onBackPressed();
}
Além de todas as respostas mencionadas, ainda é uma maneira alternativa de fazer isso, digamos que você tenha duas classes, classe A e classe B.
Classe A, você fez algumas atividades como a caixa de seleção, imprimiu alguns dados e pretendeu a classe B. Classe B, você gostaria de passar vários valores para a classe A e manter o estado anterior da classe A, você pode usar, tente esta alternativa método ou faça o download do código-fonte para demonstrar isso
ou
http://developer.android.com/reference/android/content/Intent.html
Apenas tente isso na primeira atividade
Intent mainIntent = new Intent(Activity1.this, Activity2.class);
this.startActivity(mainIntent);
Na sua segunda atividade
@Override
public void onBackPressed() {
this.finish();
}