Confirm
Een ConfirmDialog is een modaal dialoogvenster ontworpen om de gebruiker de keuze te laten maken uit een set van maximaal 3 opties. Het dialoogvenster blokkeert de uitvoer van de app totdat de gebruiker ermee interactie heeft of het sluit vanwege een time-out.
Usages
De ConfirmDialog biedt een manier om gebruikers om bevestiging te vragen of om tussen meerdere opties te kiezen, zoals Ja/Nee of OK/Annuleren, om ervoor te zorgen dat ze hun acties erkennen en bevestigen.
Toon Code
- Java
Types
Optietype
De ConfirmDialog ondersteunt de volgende optietypes, die bepalen welke knoppen in het dialoogvenster worden weergegeven:
OK: Toont eenOK-knop.OK_CANCEL: ToontOK- enAnnuleren-knoppen.ABORT_RETRY_IGNORE: ToontAnnuleren,OpnieuwenNegerenknoppen.YES_NO_CANCEL: ToontJa,NeeenAnnulerenknoppen.YES_NO: ToontJaenNeeknoppen.RETRY_CANCEL: ToontOpnieuwenAnnulerenknoppen.CUSTOM: Toont op maat gemaakte knoppen zoals gespecificeerd.
Berichts type
De ConfirmDialog ondersteunt de volgende berichttypes. Wanneer je een type configureert, toont het dialoogvenster een pictogram naast het bericht, en het thema van het dialoogvenster wordt bijgewerkt volgens de richtlijnen van het webforJ ontwerpsysteem.
PLAIN: Toont het bericht zonder pictogram, met het standaardthema.ERROR: Toont een foutpictogram naast het bericht met het foutthema toegepast.QUESTION: Toont een vraagtekenpictogram naast het bericht, met het primaire thema.WARNING: Toont een waarschuwingspictogram naast het bericht met het waarschuwings thema toegepast.INFO: Toont een info-pictogram naast het bericht, met het info-thema.
In het volgende voorbeeld configureert de code een bevestigingsdialoog van het type CUSTOM met een aangepaste titel en bericht.
Toon Code
- Java
Resultaat
De ConfirmDialog retourneert een resultaat op basis van de interactie van de gebruiker met het dialoogvenster. Dit resultaat geeft aan welke knop de gebruiker heeft aangeklikt of of het dialoogvenster is afgesloten vanwege een time-out.
Het resultaat wordt geretourneerd vanuit de show()-methode, of de equivalente OptionDialog-methode zoals hieronder weergegeven.
De ConfirmDialog.Result enum bevat de volgende mogelijke resultaten:
OK: De gebruiker klikte op deOK-knop.CANCEL: De gebruiker klikte op deCANCEL-knop.YES: De gebruiker klikte op deJA-knop.NO: De gebruiker klikte op deNEE-knop.ABORT: De gebruiker klikte op deANNULEREN-knop.RETRY: De gebruiker klikte op deOPNIEUW-knop.IGNORE: De gebruiker klikte op deNEGEREN-knop.FIRST_CUSTOM_BUTTON: De gebruiker klikte op de eerste aangepaste knop.SECOND_CUSTOM_BUTTON: De gebruiker klikte op de tweede aangepaste knop.THIRD_CUSTOM_BUTTON: De gebruiker klikte op de derde aangepaste knop.TIMEOUT: Het dialoogvenster is timemout.UNKNOWN: Een onbekend resultaat, meestal gebruikt als een standaard of foutstatus.
if (result == ConfirmDialog.Result.FIRST_CUSTOM_BUTTON) {
OptionDialog.showMessageDialog("Wijzigingen afgewezen", "Afgewezen", "Snap het");
} else {
OptionDialog.showMessageDialog(
"Wijzigingen opgeslagen", "Opgeslagen", "Snap het", MessageDialog.MessageType.INFO);
}
Standaardknop
De ConfirmDialog stelt je in staat een standaardknop op te geven die vooraf is geselecteerd wanneer het dialoogvenster wordt weergegeven. Dit verbetert de gebruikerservaring door een voorgestelde actie aan te bieden die snel kan worden bevestigd door op de Enter toets te drukken.
ConfirmDialog dialog = new ConfirmDialog(
"Weet je het zeker?", "Bevestigen", ConfirmDialog.OptionType.YES_NO);
dialog.setDefaultButton(Button.SECOND); // tweede knop
dialog.show();
Knoptekst
Je kunt de tekst van de knoppen configureren met de methode setButtonText(ConfirmDialog.Button button, String text).
ConfirmDialog dialog = new ConfirmDialog(
"Weet je het zeker?", "Bevestigen", ConfirmDialog.OptionType.CUSTOM);
dialog.setButtonText(ConfirmDialog.Button.FIRST, "Absoluut");
dialog.setButtonText(ConfirmDialog.Button.SECOND, "Nee");
dialog.show();
HTML-verwerking
Standaard verwerkt en rendert het bevestigingsdialoogvenster HTML-inhoud. Je kunt deze functie uitschakelen door het te configureren om in plaats daarvan platte tekst weer te geven.
ConfirmDialog dialog = new ConfirmDialog(
"<b>Weet je het zeker?</b>", "Bevestigen",
ConfirmDialog.OptionType.YES_NO, ConfirmDialog.MessageType.QUESTION);
dialog.setRawText(true);
dialog.show();
Time-out
De ConfirmDialog stelt je in staat een tijdslimiet in te stellen waarna het dialoogvenster automatisch sluit. Deze functie is nuttig voor niet-kritische bevestigingen of acties die de onmiddellijke interactie van de gebruiker niet vereisen.
Je kunt de time-out voor het dialoogvenster configureren met de methode setTimeout(int timeout). De time-outduur is in seconden. Als de opgegeven tijd verstrijkt zonder enige gebruikersinteractie, sluit het dialoogvenster automatisch.
ConfirmDialog dialog = new ConfirmDialog(
"Weet je het zeker?", "Bevestigen", ConfirmDialog.OptionType.YES_NO);
dialog.setDefaultButton(Button.SECOND);
dialog.setTimeout(3);
ConfirmDialog.Result result = dialog.show();
switch (result) {
case TIMEOUT:
OptionDialog.showMessageDialog(
"Je hebt te lang om een beslissing gevraagd", "Time-out", "Snap het",
MessageDialog.MessageType.WARNING);
break;
case YES:
OptionDialog.showMessageDialog(
"Je klikte op Ja", "Ja", "Snap het",
MessageDialog.MessageType.INFO);
break;
default:
OptionDialog.showMessageDialog(
"Je klikte op Nee", "Nee", "Snap het",
MessageDialog.MessageType.INFO);
break;
}
Best practices
- Duidelijke en beknopte prompts: Zorg ervoor dat de prompttekst duidelijk uitlegt welke actie de gebruiker wordt gevraagd te bevestigen. Vermijd ambiguïteit.
- Geschikte optietypes: Kies optietypes die passen bij de context van de actie. Voor eenvoudige ja/nee-beslissingen, gebruik simpele opties. Voor meer complexe scenario's, bied extra knoppen zoals "Annuleren" aan, zodat gebruikers kunnen terugtreden zonder een keuze te maken.
- Logische standaardknop: Stel een standaardknop in die overeenkomt met de meest waarschijnlijke of aanbevolen actie van de gebruiker om het besluitvormingsproces te stroomlijnen.
- Consistente thematisering: Stem de thema's van het dialoogvenster en de knoppen af op het ontwerp van je app voor een samenhangende gebruikerservaring.
- Verstandig gebruik van time-out: Stel time-outs in voor niet-kritische bevestigingen, zodat gebruikers voldoende tijd hebben om de prompt te lezen en te begrijpen.
- Minimaliseer overmatig gebruik: Gebruik bevestigingsdialoogvensters spaarzaam om frustratie bij de gebruiker te voorkomen. Reserveer ze voor kritische acties die expliciete bevestiging van de gebruiker vereisen.