Bevestiging Dialoog
Een ConfirmDialog
is een modale dialoog ontworpen om de gebruiker in staat te stellen een keuze te maken uit een set van maximaal 3 opties. De dialoog blokkeert de uitvoering van de app totdat de gebruiker ermee interageert of deze sluit vanwege een time-out.
ConfirmDialog.Result result = OptionDialog.showConfirmDialog(
"Bevestig je dit?",
"Bevestiging",
ConfirmDialog.OptionType.OK_CANCEL,
ConfirmDialog.MessageType.QUESTION);
Gebruik
De ConfirmDialog
biedt een manier om gebruikers om bevestiging te vragen of om te kiezen tussen meerdere opties, zoals Ja/Nee
of OK/Annuleren
, zodat ze hun acties erkennen en bevestigen.
Toon code
- Java
Types
Optietype
De ConfirmDialog
ondersteunt de volgende optietypes, die bepalen welke knoppen in de dialoog worden weergegeven:
OK
: Toont eenOK
knop.OK_CANCEL
: ToontOK
enAnnuleren
knoppen.ABORT_RETRY_IGNORE
: ToontAfbreken
,Opnieuw
enNegeer
knoppen.YES_NO_CANCEL
: ToontJa
,Nee
enAnnuleren
knoppen.YES_NO
: ToontJa
enNee
knoppen.RETRY_CANCEL
: ToontOpnieuw
enAnnuleren
knoppen.CUSTOM
: Toont aangepaste knoppen zoals gespecificeerd.
Berichten type
De ConfirmDialog
ondersteunt de volgende berichttypes. Wanneer je een type configureert, toont de dialoog een pictogram naast het bericht, en het thema van de dialoog wordt bijgewerkt volgens de regels 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 informatief 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 de dialoog. Dit resultaat geeft aan welke knop de gebruiker heeft ingedrukt of dat de dialoog is verworpen vanwege een time-out.
Het resultaat wordt geretourneerd vanuit de show()
-methode, of de equivalente OptionDialog
-methode zoals hieronder weergegeven.
De ConfirmDialog.Result
enum omvat de volgende mogelijke resultaten:
OK
: De gebruiker heeft op deOK
knop geklikt.CANCEL
: De gebruiker heeft op deANNULEREN
knop geklikt.YES
: De gebruiker heeft op deJA
knop geklikt.NO
: De gebruiker heeft op deNEE
knop geklikt.ABORT
: De gebruiker heeft op deAFBREKEN
knop geklikt.RETRY
: De gebruiker heeft op deOPNIET
knop geklikt.IGNORE
: De gebruiker heeft op deNEGEREN
knop geklikt.FIRST_CUSTOM_BUTTON
: De gebruiker heeft op de eerste aangepaste knop geklikt.SECOND_CUSTOM_BUTTON
: De gebruiker heeft op de tweede aangepaste knop geklikt.THIRD_CUSTOM_BUTTON
: De gebruiker heeft op de derde aangepaste knop geklikt.TIMEOUT
: De dialoog time-out.UNKNOWN
: Een onbekend resultaat, doorgaans gebruikt als een standaard of foutstatus.
if (result == ConfirmDialog.Result.FIRST_CUSTOM_BUTTON) {
OptionDialog.showMessageDialog("Wijzigingen verworpen", "Verworpen", "Begrepen");
} else {
OptionDialog.showMessageDialog(
"Wijzigingen opgeslagen", "Opgeslagen", "Begrepen", MessageDialog.MessageType.INFO);
}
Standaardknop
De ConfirmDialog
stelt je in staat om een standaardknop op te geven die vooraf is geselecteerd wanneer de dialoog wordt weergegeven. Dit verbetert de gebruikerservaring door een voorgestelde actie 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();
Knopteksten
Je kunt de tekst van de knoppen configureren met behulp van 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 de bevestigingsdialoog HTML-inhoud en geeft deze weer. Je kunt deze functie uitschakelen door deze zo te configureren dat deze platte tekst weergeeft.
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 om een time-outduur in te stellen waarna de dialoog automatisch sluit. Deze functie is nuttig voor niet-kritieke bevestigingen of acties die niet de onmiddellijke interactie van de gebruiker vereisen.
Je kunt de time-out voor de dialoog configureren met de methode setTimeout(int timeout)
. De time-outduur is in seconden. Als de opgegeven tijd verstrijkt zonder enige gebruikersinteractie, sluit de dialoog 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 nagedacht", "Time-out", "Begrepen",
MessageDialog.MessageType.WARNING);
break;
case YES:
OptionDialog.showMessageDialog(
"Je hebt Ja geklikt", "Ja", "Begrepen",
MessageDialog.MessageType.INFO);
break;
default:
OptionDialog.showMessageDialog(
"Je hebt Nee geklikt", "Nee", "Begrepen",
MessageDialog.MessageType.INFO);
break;
}
Beste praktijken
- Duidelijke en bondige prompts: Zorg ervoor dat het promptbericht 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 je eenvoudige opties. Voor complexere scenario's bied je extra knoppen zoals "Annuleren" om gebruikers in staat te stellen terug te gaan 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 de dialoog en de knoppen af op het ontwerp van je app voor een samenhangende gebruikerservaring.
- Tijdslimieten met beleid gebruiken: Stel time-outs in voor niet-kritieke bevestigingen, zodat gebruikers voldoende tijd hebben om het promptbericht te lezen en te begrijpen.
- Minimaliseer overmatig gebruik: Gebruik bevestigingsdialoogvensters spaarzaam om frustratie bij gebruikers te voorkomen. Beperk ze tot kritieke acties die expliciete bevestiging van de gebruiker vereisen.