Ga naar hoofdinhoud

Bevestiging Dialoog

Open in ChatGPT
Shadow 24.02
Java API

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

Types

Optietype

De ConfirmDialog ondersteunt de volgende optietypes, die bepalen welke knoppen in de dialoog worden weergegeven:

  1. OK: Toont een OK knop.
  2. OK_CANCEL: Toont OK en Annuleren knoppen.
  3. ABORT_RETRY_IGNORE: Toont Afbreken, Opnieuw en Negeer knoppen.
  4. YES_NO_CANCEL: Toont Ja, Nee en Annuleren knoppen.
  5. YES_NO: Toont Ja en Nee knoppen.
  6. RETRY_CANCEL: Toont Opnieuw en Annuleren knoppen.
  7. 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.

  1. PLAIN: Toont het bericht zonder pictogram, met het standaardthema.
  2. ERROR: Toont een foutpictogram naast het bericht met het foutthema toegepast.
  3. QUESTION: Toont een vraagtekenpictogram naast het bericht, met het primaire thema.
  4. WARNING: Toont een waarschuwingspictogram naast het bericht met het waarschuwings-thema toegepast.
  5. 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

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.

important

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:

  1. OK: De gebruiker heeft op de OK knop geklikt.
  2. CANCEL: De gebruiker heeft op de ANNULEREN knop geklikt.
  3. YES: De gebruiker heeft op de JA knop geklikt.
  4. NO: De gebruiker heeft op de NEE knop geklikt.
  5. ABORT: De gebruiker heeft op de AFBREKEN knop geklikt.
  6. RETRY: De gebruiker heeft op de OPNIET knop geklikt.
  7. IGNORE: De gebruiker heeft op de NEGEREN knop geklikt.
  8. FIRST_CUSTOM_BUTTON: De gebruiker heeft op de eerste aangepaste knop geklikt.
  9. SECOND_CUSTOM_BUTTON: De gebruiker heeft op de tweede aangepaste knop geklikt.
  10. THIRD_CUSTOM_BUTTON: De gebruiker heeft op de derde aangepaste knop geklikt.
  11. TIMEOUT: De dialoog time-out.
  12. 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

  1. Duidelijke en bondige prompts: Zorg ervoor dat het promptbericht duidelijk uitlegt welke actie de gebruiker wordt gevraagd te bevestigen. Vermijd ambiguïteit.
  2. 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.
  3. Logische standaardknop: Stel een standaardknop in die overeenkomt met de meest waarschijnlijke of aanbevolen actie van de gebruiker om het besluitvormingsproces te stroomlijnen.
  4. Consistente thematisering: Stem de thema's van de dialoog en de knoppen af op het ontwerp van je app voor een samenhangende gebruikerservaring.
  5. 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.
  6. Minimaliseer overmatig gebruik: Gebruik bevestigingsdialoogvensters spaarzaam om frustratie bij gebruikers te voorkomen. Beperk ze tot kritieke acties die expliciete bevestiging van de gebruiker vereisen.