12
votes

Comment désactiver le bouton arrière lorsque la boîte d'alerte est à l'écran

J'ai utilisé la fonction ONKEYDOWDOWD dans l'activité ..... mais quand le bouton arrière le bouton est cliqué pour la première fois annule la boîte de dialogue et va à notre activité ... Je veux que les deux activités et la boîte de dialogue soient fermées lorsque en cliquant sur le bouton arrière ou désactivez le bouton arrière lorsque la boîte de dialogue La boîte est affichée ...

Quelqu'un peut-il suggérer des solutions pour cela ....

Merci d'avance,


mise à jour

Bonjour merci pour votre réponse. Le progresssialog avec .SetCancelable (false); fonctionne bien.

Mais ici je veux une chose différente. Lorsque la boîte de dialogue de progression est exécutée, j'appuierai la touche BACK et je souhaite afficher une boîte de dialogue d'alerte afin que l'utilisateur puisse notifier que la progression est en cours d'exécution.

Y a-t-il une solution à ce sujet?

Aidez-moi s'il vous plaît.

Merci d'avance.


0 commentaires

5 Réponses :


57
votes

Avez-vous essayé d'essayer de définir son SetCancelable () propriété sur false

quelque chose comme ça xxx


1 commentaires

- Cela fonctionne également avec AlertDialog ... Juste au cas où quelqu'un a besoin de savoir.



2
votes

peut être cela aidera dans votre cas:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            // Show your Alert Box here
        }
        return false;
    }


2 commentaires

Merci pour votre réponse. La question était longue. Je vais essayer si get le temps.


juste pour être en retard que jamais :)



0
votes

Je veux juste améliorer @mojo Réponse

alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {

        @Override
        public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
               //Your handler   


               return false;
        }
});


0 commentaires

0
votes

Personnellement une solution plus propre consistait à terminer la connexion avant de commencer l'intention au lieu de définir des indicateurs dans le paquet de la nouvelle activité ou de remplacer toutes les méthodes. Essayez quelque chose comme celui-ci ci-dessous où la connexion est votre activité de connexion et la maison est la première activité après vous être connectée avec succès à l'utilisateur.

finish();
Intent intent = new Intent(Login.this, Home.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);


0 commentaires

0
votes

"Je veux que les deux activités et la boîte de dialogue soient fermées" xxx pré>

"ou désactivez le bouton arrière lorsque la boîte de dialogue s'affiche" Ceci peut bloquer le retour de la boîte de dialogue. Lorsque vous le créez de manière dynamique, ajoutez: P>

dialog.setCanceledOnTouchOutside(false);


0 commentaires