After clicking a button, displaying a modal dialog on the Android is easy, by using the classes android.app.AlertDialog and its helper, android.app.AlertDialog.Builder, with code such as:
new AlertDialog.Builder(v.getContext()) .setTitle("My Alert") .setMessage("Blah") .setPositiveButton(android.R.string.ok, null) .show();Alternatively, if there's a need to hold a reference to the newly created AlertDialog:
AlertDialog LDialog = new AlertDialog.Builder(v.getContext()) .setTitle("My Alert") .setMessage("Blah") .setPositiveButton(android.R.string.ok, null).create(); LDialog.show();
If no calls are made to setPositiveButton, or setNegativeButton, then no buttons are displayed and pressing the back button is the only way to dismiss the dialog.
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes