Confirm
Een ConfirmDialog is een modale dialoog die is ontworpen om de gebruiker de mogelijkheid te geven om een van een set van maximaal 3 opties te kiezen. De dialoog blokkeert de uitvoering van de app totdat de gebruiker ermee interactie heeft of deze sluit vanwege een time-out.
Usages
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
- ConfirmDialogConstructorView.java
Types
Optietype
De ConfirmDialog ondersteunt de volgende optietypen, die de knoppen bepalen die in de dialoog worden weergegeven:
OK: Toont eenOKknop.OK_CANCEL: ToontOKenAnnulerenknoppen.ABORT_RETRY_IGNORE: ToontAbort,Retry, enIgnoreknoppen.YES_NO_CANCEL: ToontJa,Nee, enAnnulerenknoppen.YES_NO: ToontJaenNeeknoppen.RETRY_CANCEL: ToontRetryenAnnulerenknoppen.CUSTOM: Toont aangepaste knoppen zoals gespecificeerd.
Berichttype
De ConfirmDialog ondersteunt de volgende berichttypen. Wanneer u een type configureert, toont de dialoog een pictogram naast het bericht, en het thema van de dialoog wordt bijgewerkt volgens de ontwerpregels van webforJ.
PLAIN: Toont het bericht zonder pictogram, met gebruik van het standaardthema.ERROR: Toont een foutpictogram naast het bericht met het foutthema toegepast.QUESTION: Toont een vraagtekenpictogram naast het bericht, met gebruik van het primaire thema.WARNING: Toont een waarschuwingspictogram naast het bericht met het waarschuwings-thema toegepast.INFO: Toont een info-pictogram naast het bericht, met gebruik van het info-thema.
In het volgende voorbeeld configureert de code een bevestigingsdialoog van het type CUSTOM met een aangepaste titel en bericht.
Toon Code
- ConfirmDialogOptionsView.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 of de dialoog is afgesloten vanwege een time-out.
Het resultaat zal worden 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 deOKknop gedrukt.CANCEL: De gebruiker heeft op deCANCELknop gedrukt.YES: De gebruiker heeft op deJAknop gedrukt.NO: De gebruiker heeft op deNEEknop gedrukt.ABORT: De gebruiker heeft op deABORTknop gedrukt.RETRY: De gebruiker heeft op deRETRYknop gedrukt.IGNORE: De gebruiker heeft op deIGNOREknop gedrukt.FIRST_CUSTOM_BUTTON: De gebruiker heeft op de eerste aangepaste knop gedruktSECOND_CUSTOM_BUTTON: De gebruiker heeft op de tweede aangepaste knop gedruktTHIRD_CUSTOM_BUTTON: De gebruiker heeft op de derde aangepaste knop gedruktTIMEOUT: De dialoog is tijdoverschreden.UNKNOWN: Een onbekend resultaat, meestal gebruikt als een standaard- of fouttoestand.
if (result == ConfirmDialog.Result.FIRST_CUSTOM_BUTTON) {
OptionDialog.showMessageDialog("Wijzigingen weggegooid", "Weggegooid", "Begrijp het");
} else {
OptionDialog.showMessageDialog(
"Wijzigingen opgeslagen", "Opgeslagen", "Begrijp het", MessageDialog.MessageType.INFO);
}
Standaardknop
De ConfirmDialog stelt u 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();
Knoptekst
U 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 rendert deze. U kunt deze functie uitschakelen door deze te configureren om in plaats daarvan ruwe 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 u 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 geen onmiddellijke interactie van de gebruiker vereisen.
U kunt de time-out voor de dialoog configureren met behulp van de methode setTimeout(int timeout). De time-outduur is in seconden. Als de gespecificeerde 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 nam te veel tijd om te beslissen", "Time-out", "Begrijp het",
MessageDialog.MessageType.WARNING);
break;
case YES:
OptionDialog.showMessageDialog(
"Je klikte Ja", "Ja", "Begrijp het",
MessageDialog.MessageType.INFO);
break;
default:
OptionDialog.showMessageDialog(
"Je klikte Nee", "Nee", "Begrijp het",
MessageDialog.MessageType.INFO);
break;
}
Beste praktijken
- Duidelijke en beknopte prompts: Zorg ervoor dat het promptbericht duidelijk uitlegt welke actie de gebruiker wordt gevraagd te bevestigen. Vermijd ambiguïteit.
- Geschikte optietypen: Kies optietypen die passen bij de context van de actie. Voor eenvoudige ja/nee-beslissingen, gebruik rechttoe rechtaan opties. Voor complexere scenario's kunnen extra knoppen zoals "Annuleren" worden toegevoegd, zodat gebruikers kunnen terugtrekken zonder een keuze te maken.
- Logische standaardknop: Stel een standaardknop in die overeenkomt met de meest waarschijnlijke of aanbevolen gebruikersactie om het besluitvormingsproces te stroomlijnen.
- Consistent thema: Stem de thema's van de dialoog en knoppen af op het ontwerp van uw app voor een samenhangende gebruikerservaring.
- Doordacht gebruik van time-out: 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 bevestigingsdialogen spaarzaam om frustratie bij gebruikers te voorkomen. Beperk ze tot kritieke acties die expliciete bevestiging van de gebruiker vereisen.