-1
votes

Appuyez à nouveau sur le bouton pour confirmer l'action

Comment faire un bouton lorsque vous appuyez sur un message Toast, demandez à l'utilisateur de toucher le bouton à nouveau pour confirmer l'action. Voici ce que j'ai jusqu'à présent, xxx


2 commentaires

Et quel est le problème ou le résultat de votre code?


Il suffit de faire une nouvelle fenêtre avec un bouton dessus et ouvrez-le onglick?


4 Réponses :


0
votes

Utilisation du gestionnaire pour planifier pour définir une action de bouton de réglage comme ceci:

final OnClickListener listener = new OnClickListener(){
        public void onClick(View v) {
            Toast.makeText(YourActivity.this,"press back one more time to exit",Toast.LENGTH_SHORT).show();
            myExitClose.setOnClickListener(new OnClickListener(){
                YourActivity.this.finish();
            });
            new Handler().postDelay(new Runable(){
               myExitClose.setOnClickListener(listener);
            },2000); //wait 2 second for the next pressed
        }
}
myExitClose.setOnClickListener(listener);


2 commentaires

Merci pour votre aperçu, votre code m'a aidé à mieux comprendre mon problème.


@Imkong Akum Longchare Si ma réponse résout votre problème, veuillez l'accepter, si cela ne le fait pas, dites-moi et je l'aide.



-1
votes

C'est le gist de base de celui-ci. Toast.Maketext prend un contexte, une chaîne et une durée.

myExitClose.setOnClickListener( (click) ->  {

        Toast.makeText(getActivity(), "StringRes", Toast.LENGTH_SHORT).show();  
    });


2 commentaires

Qu'est-ce qui se passera ensuite quand j'appuie sur le bouton une fois de plus ??


La question était juste de savoir comment faire un toast. Il suffit de mettre en place un compteur de clics pour la confirmation. Très arbitraire.



1
votes

Lorsque vous appuyez sur le bouton, enregistrez l'horodatage de la presse. Si le bouton est enfoncé à nouveau, comparez le nouvel horodatage à l'ancien et effectuez l'action spéciale si les deux presses sont suffisamment rapprochées.

button.setOnClickListener(v -> {
    long currentTime = System.currentTimeMillis();

    if (lastPressedTime == null || (currentTime - lastPressedTime) > 2000) {
        Toast.makeText(v.getContext(), "Tap again to exit", Toast.LENGTH_SHORT).show();
        lastPressedTime = currentTime;
    } else {
        finish();
    }
});


0 commentaires

0
votes

Exemple de la marche à quitter Appuyez sur Double Back Appuyez sur un intervalle défini:

private long backPressed;
private static final int TIME_INTERVAL = 2000;

@Override
public void onBackPressed() {
    if( backPressed + TIME_INTERVAL > System.currentTimeMillis() ) {
        finish();
        super.onBackPressed();
        return;
    } else {
        Toast.makeText(this, "Tap again to exit", Toast.LENGTH_SHORT).show();
    }

    backPressed = System.currentTimeMillis();
}


0 commentaires