繁体   English   中英

单击确定按钮时AlertDialog无法关闭-C#xamarin

[英]AlertDialog not closing when ok button is clicked- C# xamarin

在此处输入图片说明

大家好,列表视图中有两个按钮。 当我单击拒绝按钮Alertdialog时,我必须输入原因..在OK上输入原因后,单击AlertDialog应该关闭。

每件东西都保存到DB ..但是警报对话框并没有关闭...而是输入了其关闭的三倍..我已经在下面插入了我的代码。

      btnReject.Click += delegate
            {
                var currentItem = item;
                Console.WriteLine(position);


                AlertDialog.Builder alert = new AlertDialog.Builder(this.context);
                LayoutInflater inflater = Application.Context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater;
                View viewdialog = inflater.Inflate(Resource.Layout.RejectJobsAlertDialog, null);
                EditText getreason = viewdialog.FindViewById<EditText>(Resource.Id.Reason);
                alert.SetTitle("Reject Reason ");
                alert.SetView(viewdialog);
                alert.SetPositiveButton("Ok", (senderAlert, args) =>
                {

                    item.RejectedReason = getreason.Text;
                    sharedasproxy.MobileJobdetailsUpdate(item, BASE_URL + "/xxxxx");
                    Toast.MakeText(this.context, "success!", ToastLength.Short).Show();
                    btnReject.Visibility = ViewStates.Invisible;
                    btnAccept.Visibility = ViewStates.Visible;

                    dialog.Cancel();
                });

                alert.SetNegativeButton("Cancel", (senderAlert, args) =>
                {
                    Toast.MakeText(this.context, "Cancelled!", ToastLength.Short).Show();
                    CloseDialog();
                });


                dialog = alert.Create();


                dialog.Show();




            };
  • 确保没有多次单击按钮单击事件。
  • 代替编写委托,在click事件中调用一个方法。

尝试以下类似的方法,

 if (!btnReject.HasOnClickListeners)
    {

btnReject.Click += delegate
            {
                var currentItem = item;

                AlertDialog.Builder alert = new AlertDialog.Builder(this.context);
                LayoutInflater inflater = Application.Context.GetSystemService(Context.LayoutInflaterService) as LayoutInflater;
                View viewdialog = inflater.Inflate(Resource.Layout.RejectJobsAlertDialog, null);
                EditText getreason = viewdialog.FindViewById<EditText>(Resource.Id.Reason);
                alert.SetTitle("Reject Reason ");
                alert.SetView(viewdialog);
                alert.SetPositiveButton("Ok", (senderAlert, args) =>
                {

                    item.RejectedReason = getreason.Text;
                    sharedasproxy.MobileJobdetailsUpdate(item, BASE_URL + "/xxxxx");
                    Toast.MakeText(this.context, "success!", ToastLength.Short).Show();
                    btnReject.Visibility = ViewStates.Invisible;
                    btnAccept.Visibility = ViewStates.Visible;
                    dialog.Cancel();
                });

                alert.SetNegativeButton("Cancel", (senderAlert, args) =>
                {
                    Toast.MakeText(this.context, "Cancelled!", ToastLength.Short).Show();
                    CloseDialog();
                });    

                dialog = alert.Create();
                dialog.Show();


            };
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM