Hi, Try this
8--> public class modal : Activity { private bool mChoice = false; private bool mQuitModal = false; private IntPtr mMsgQueueNextMethod; private IntPtr mMsgTargetField; public modal() { } public void showAlertDialog(Context context, string info) { if (!prepareModal()) return; AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.SetMessage(info); builder.SetCancelable(false); builder.SetPositiveButton("OK", (object o, Android.Content.DialogClickEventArgs e) => { this.mQuitModal = true; builder.Dispose(); // was dialog.dismiss() }); AlertDialog alert = builder.Create(); alert.Show(); doModal(); } public bool showConfirmDialog(Context context, string info) { if (!prepareModal()) return false; // reset choice mChoice = false; AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.SetMessage(info); builder.SetCancelable(false); builder.SetPositiveButton("OK", (object o, Android.Content.DialogClickEventArgs e) => { this.mQuitModal = true; this.mChoice = true; builder.Dispose(); }); builder.SetNegativeButton("Cancel", (object o, Android.Content.DialogClickEventArgs e) => { mQuitModal = true; mChoice = false; builder.Dispose(); // probably wrong }); AlertDialog alert = builder.Create(); alert.Show(); doModal(); return mChoice; } private bool prepareModal() { using (var MessageQueue_Class = Java.Lang.Class.FromType(typeof(Android.OS.MessageQueue))) using (var Message_Class = Java.Lang.Class.FromType(typeof(Android.OS.Message))) { mMsgQueueNextMethod = JNIEnv.GetMethodID(MessageQueue_Class.Handle, "next", "()Landroid/os/Message;"); mMsgTargetField = JNIEnv.GetFieldID(Message_Class.Handle, "target", "Landroid/os/Handler;"); return true; } } private void doModal() { mQuitModal = false; // get message queue associated with main UI thread MessageQueue queue = Looper.MyQueue(); while (!mQuitModal) { // call queue.next(), might block Message msg = null; try { IntPtr _msg = JNIEnv.CallObjectMethod(queue.Handle, mMsgQueueNextMethod); if (_msg == IntPtr.Zero) return; using (msg = Java.Lang.Object.GetObject<Android.OS.Message>(_msg, JniHandleOwnership.TransferLocalRef)) { IntPtr _target = JNIEnv.GetObjectField(msg.Handle, mMsgTargetField); if (_target == IntPtr.Zero) { mQuitModal = true; return; } using (var target = Java.Lang.Object.GetObject<Android.OS.Handler>(_target, JniHandleOwnership.TransferLocalRef)) { target.DispatchMessage(msg); msg.Recycle(); } } } catch (System.Exception e) { } } } } <--8 Modal dialogues aren't really something you find on Android, but where there is a will... PFJ -- View this message in context: http://mono-for-android.1047100.n5.nabble.com/messagebox-for-android-tp5709956p5709972.html Sent from the Mono for Android mailing list archive at Nabble.com. _______________________________________________ Monodroid mailing list Monodroid@lists.ximian.com UNSUBSCRIBE INFORMATION: http://lists.ximian.com/mailman/listinfo/monodroid