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,
4 Réponses :
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);
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.
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(); });
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.
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(); } });
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(); }
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?