2017-01-30 3 views
0

enter image description here[OK]ボタンを

こんにちはxamarin clicked- C#は、すべてのリストビューで2つのボタンが持っているときAlertDialogが閉じていません。私が拒否ボタンをクリックすると、AlertDialogが来るでしょう。そこに理由を入力する必要があります。理由を入力した後、OKをクリックします。AlertDialogは閉じるべきです。

すべてのものがDBに保存されます。しかし、警告ダイアログは閉じない...代わりに3回入力した後で..私は以下のコードを添付しました。

 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(); 




      }; 

答えて

2
  • ていることを確認し、ボタンのクリックイベントが複数回接続されていません。
  • デリゲートを作成する代わりに、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(); 


      }; 
} 
+0

おかげで、それは私のために働いたたくさん。 –

関連する問題