android update Como lidar com o botão Voltar em atividade




android update (6)

Como lidar com um botão de volta em uma atividade. Onde eu tenho alguns botões. Se eu clicar em um dos botões, ele estará redirecionando para os botões que eu precisei. Está funcionando bem, mas quando pressiono o botão de volta, ele é concluído.

Como resolver este problema. Eu tenho apenas uma atividade para todos esses botões. Desde já, obrigado.

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) 
   {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) 
        {
            return false; //I have tried here true also
        }
        return super.onKeyDown(keyCode, event);
   }

Eu usei o código acima para manipular o botão Voltar, mas não está funcionando. Quando pressiono o botão de volta, ele bateu em si mesmo.


Tanto para o botão Voltar do dispositivo de hardware quanto para o botão Voltar (por exemplo, "<-" é o que funciona para mim. (* Note que eu tenho uma barra de aplicativos / barra de ferramentas na atividade)

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



@Override
public void onBackPressed() {
   //Execute your code here
   finish();

}

Felicidades!


Esta é uma maneira simples de fazer alguma coisa.

    @Override
        public void onBackPressed() {
            // do what you want to do when the "back" button is pressed.
            startActivity(new Intent(Activity.this, MainActivity.class));
            finish();
        }

Eu acho que pode haver maneiras mais elaboradas de fazer isso, mas eu gosto de simplicidade. Por exemplo, usei o modelo acima para fazer o usuário sair do aplicativo E, depois, voltar para outra atividade de minha escolha.


Uma abordagem mais simples é capturar o botão Voltar e pressionar moveTaskToBack (true) da seguinte maneira:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

O Android 2.0 introduziu um novo método onBackPressed e essas recomendações sobre como lidar com o botão Voltar


Isso me ajudou ..

@Override
public void onBackPressed() {
    startActivity(new Intent(currentActivity.this, LastActivity.class));
    finish();
}

OU????? mesmo você pode usar isso para alternar gaveta também

@Override
public void onBackPressed() {
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    if (drawer.isDrawerOpen(GravityCompat.START)) {
        drawer.closeDrawer(GravityCompat.START);
    } else {
        super.onBackPressed();
    }
        startActivity(new Intent(currentActivity.this, LastActivity.class));
    finish();

}

Espero que isso ajude você .. :)


Você pode lidar com isso assim:

para o nível 5 da API e maior

@Override
public void onBackPressed() {
    // your code.
}

mais antigo que a API 5

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // your code
        return true;
    }

    return super.onKeyDown(keyCode, event);
}

Além do acima, eu pessoalmente recomendo

onKeyUp():

Programaticamente falando keydown irá disparar quando o usuário deprime uma chave inicialmente, mas vai repetir enquanto o usuário mantém a tecla pressionada. *

Isso permanece verdadeiro para todas as plataformas de desenvolvimento.

O desenvolvimento do Google sugeriu que, se você estiver interceptando o botão VOLTAR em uma visualização, deverá rastrear o KeyEvent com o início do rastreamento no keydown e depois invocar com o keyup.

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK
            && event.getRepeatCount() == 0) {
        event.startTracking();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
            && !event.isCanceled()) {
        // *** Your Code ***
        return true;
    }
    return super.onKeyUp(keyCode, event);
}




android