Example #1
0
        }//class

        public bool?ReadYesNoCancel(string prompt, bool?defaultYes,
                                    bool cancelButton)
        {
            bool?  result = defaultYes;
            var    w      = new ManualResetEvent(false);
            Action exit   = () => w.Set();
            IDialogInterfaceOnCancelListener lsnrCancel = new IDIOCancelListener {
                Action = () => {
                    System.Diagnostics.Debug.Assert(result == defaultYes, "NOT equal '" + result + " and '" + defaultYes + "'");
                    exit();
                },
            };
            EventHandler dlgt = delegate {
                var bldr = new AlertDialog.Builder(_parent);
                bldr.SetMessage(prompt);
                bldr.SetCancelable(true);
                bldr.SetOnCancelListener(lsnrCancel);
                bldr.SetPositiveButton("Yes", delegate {
                    result = true;
                    exit();
                });
                bldr.SetNeutralButton("No", delegate {
                    result = false;
                    exit();
                });
                if (cancelButton)
                {
                    bldr.SetNegativeButton("Cancel", delegate {
                        result = null;
                        exit();
                    });
                }
                var dlg = bldr.Create();
                dlg.Show();
            };

            UiInvokeNoWait(dlgt);
            w.WaitOne();
            return(result);
        }
Example #2
0
        //----
        public override string SafeReadLine(string prompt, string title)
        {
            string result = null;
            var    w      = new ManualResetEvent(false);
            Action exit   = () => w.Set();
            IDialogInterfaceOnCancelListener lsnrCancel = new IDIOCancelListener {
                Action = () => {
                    System.Diagnostics.Debug.Assert(result == null, "NOT null '" + result + "'");
                    exit();
                },
            };
            EventHandler dlgt = delegate {
                var bldr = new AlertDialog.Builder(_parent);
                bldr.SetTitle(title);
                bldr.SetMessage(prompt);
                // Set an EditText view to get user input final
                EditText input = new EditText(_parent);
                bldr.SetView(input);
                bldr.SetCancelable(true);
                bldr.SetOnCancelListener(lsnrCancel);
                bldr.SetPositiveButton("Yes", delegate {
                    result = input.Text;
                    exit();
                });
                bldr.SetNeutralButton("No", delegate {
                    result = null;
                    exit();
                });
                var dlg = bldr.Create();
                dlg.Show();
            };

            UiInvokeNoWait(dlgt);
            w.WaitOne();
            return(result);
        }