Как отобразить всплывающее окно предупреждения из всплывающего окна предупреждения в Xamarin Android

#c# #android #xamarin #android-alertdialog

#c# #Android #xamarin #android-alertdialog

Вопрос:

Я создал всплывающее окно с предупреждением, которое запрашивает пользователя, хочет ли он отредактировать или удалить напоминание.

Если пользователь нажимает на кнопку удаления напоминания, я хочу показать другое всплывающее окно с предупреждением, в котором спрашивается, уверен пользователь или нет.

Что-то вроде этого:

 AlertDialog.Builder dialog = new AlertDialog.Builder(this);
            AlertDialog alert = dialog.Create();
            alert.SetTitle("Edit or Delete?");
            alert.SetMessage("Would you like to edit your reminder or delete it?");
            alert.SetIcon(Resource.Drawable.image_2020_09_29T09_45_02_165Z);
            alert.SetButton("Delete", (c, ev) =>
            {
                alert.SetTitle("Delete Reminder");
                alert.SetMessage("Are you sure!");
                alert.SetIcon(Resource.Drawable.Screenshot_2020_11_10_at_8_05_44_AM);
                alert.SetButton("yes", (c, ev) =>  
                {
                    TextView _txtLabel;
                    reminder = listitem[e.Position];  
                    ReminderHelper.DeleteReminder(this,reminder);
                    _txtLabel = FindViewById<TextView>(Resource.Id.txt_label);
                    StartActivity(new Intent(this, typeof(ListReminder)));
                    Toast.MakeText(this, "Deleted Sucessfully!", ToastLength.Short).Show();
                    GC.Collect();  
                });
                alert.SetButton2("no", (c, ev) => { });
            });
            alert.SetButton2("Edit", (c, ev) =>
            {
                StartActivity(new Intent(this, typeof(MainActivity)));
            });
            alert.SetButton3("Cancel", (c, ev) => { });

            alert.Show();
  

Однако в приведенном выше коде, когда я нажимаю кнопку «Удалить», напоминание не удаляется.

Любая помощь приветствуется!

Комментарии:

1. Причина, по которой это не работает, заключается в том, что вы используете один и тот же экземпляр дважды, AlertDialog alert = dialog.Create(); это необходимо вызывать каждый раз, когда вы хотите создать оповещение.

2. @FreakyAli большое спасибо, теперь это работает. Вы должны сделать это в качестве ответа, я бы с радостью дал вам преимущество 🙂

Ответ №1:

Причина, по которой это не работает, заключается в том, что вы дважды используете один и тот же экземпляр, AlertDialog alert = dialog .Create(); это должно вызываться каждый раз, когда вы хотите создать оповещение.

         AlertDialog alert = dialog.Create();