Warum würde man die AlertDialog.Builder
Klasse anstatt die Methoden direkt zur Verfügung AlertDialog
, Zum Beispiel verwenden, warum AlertDialog.Builder.setCancellable
anstatt AlertDialog.setCancellable
benutzen? Sicher ist das ein Fall von Redundanz?Alertdialog vs AlertDialog.Builder
Antwort
Weil AlertDialog.setCancellable
zurückkehrt und AlertDialog.Builder.setCancellable
gibt AlertDialog.Builder
zurück.
Dies bedeutet, dass der Builder ermöglicht es Ihnen, eine Reihe von Einstellungen mit ein wenig weniger Ausführlichkeit zu verketten. Es ist nur eine Bequemlichkeit Klasse
Ich denke, dass Fabrikmethoden nur mehr convinient sind.
Mit dem AlertDialog können Sie einen Dialog über Ihrer Aktivität/Ihrem Fragment anzeigen. Es wird normalerweise verwendet, um den Benutzer zur Interaktion aufzufordern, einschließlich einiger Schaltflächen oder zur Benachrichtigung.
AlertDialog.Builder ist eine innere statische Klasse von AlertDialog, mit der Sie schnell einen Dialog mit seinen praktischen Methoden einrichten können. Es ist genau wie eine Hilfsklasse zu AlertDialog. Es wird zum Aufrufen von Methoden in einer Kette verwendet.
Aber wer hilft es? Ist es nur der Zweck, alles in eine lange Aussage zu fassen, anstatt mehrere einzelne Aussagen (den Titel usw. festzulegen) oder bietet es auf irgendeine Weise mehr Funktionalität? – stephenfin
ja, es ist für die Bequemlichkeit Methoden in einer Kette zu rufen – waqaslam
@stephenfin eigentlich nein - Builder-Klassen sind nicht nur für Verkettung Methodenaufrufe. Sie verhalten sich oft wie eine Fabrik, die vernünftige Standardwerte und Anpassungsoptionen bietet. Außerdem ist es sehr üblich, dass das Produkt ("AlertDialog") unveränderlich/abstrakt ist, während die Gegenstücke in der Fabrik nicht vorhanden sind, was den Herstellungsprozess des Produkts enorm erleichtern kann. zum Beispiel 'StringBuilder' oder' ProcessBuilder'. – andr
AlertDialog.Builder
macht die Einstellungen der Attribute wie setTitle()
oder setMessage()
und nicht den Benutzer angezeigt.
AlertDialog
ist derjenige, der Displays jene Attribute, die Satz im AlertDialog.Builder
gewesen.
Der Zweck, beide wie erwähnt irgendwo zu haben, ist, dass es Einstellungen ermöglicht, getrennt von der tatsächlichen Anzeige gemacht zu werden, die wiederum Ding bequem macht.
Also ist es "irgendwie" wie die istream/ostream Operatoren in C++? Das klingt vernünftig – stephenfin