如何在 AlertDialog(Xamarin.Android) 中触发事件?

How to fire an event in AlertDialog(Xamarin.Android)?

我创建了以下 AlertDialog:

Dialog dialogConfirmTransfer = new Dialog(this);
AlertDialog.Builder alertConfirmTransfer = new AlertDialog.Builder(this);
alertConfirmTransfer.SetMessage("Confirm transfer");
alertConfirmTransfer.SetPositiveButton("Yes", delegate
{
    dialogConfirmTransfer.Cancel();
    //fire event call method MyMethod()
});


alertConfirmTransfer.SetNegativeButton("No", delegate
{
    dialogConfirmTransfer.Cancel();
});

dialogConfirmTransfer = alertConfirmTransfer.Create();
dialogConfirmTransfer.Show();

private void MyMethod()
{
    //the code I want to be executed after the event occurs
}

用户单击后 YES 我希望在对话框消失后触发某个事件,该事件调用位于 OnCreate 方法之外的 MainActivity 中的某个方法。互联网上有很多示例,但可能是因为我没有经常使用事件,所以我发现很难将其应用到我的特定案例中。你能给我提供我必须添加的代码,这样我才能实现我想要的吗?

好吧,如果我没记错的话,你要做的就是在警报对话框肯定选择上触发一个事件,我想这很容易,

您所要做的就是:

Dialog dialogConfirmTransfer = new Dialog(this);
AlertDialog.Builder alertConfirmTransfer = new AlertDialog.Builder(this);
alertConfirmTransfer.SetMessage("Confirm transfer");
alertConfirmTransfer.SetPositiveButton("Yes", delegate
{
 dialogConfirmTransfer.Cancel();
 myMethod();

});


alertConfirmTransfer.SetNegativeButton("No", delegate
{
  dialogConfirmTransfer.Cancel();
 });

dialogConfirmTransfer = alertConfirmTransfer.Create();
dialogConfirmTransfer.Show();

//call method

我创建自定义事件处理程序:

class FileTransferSuccessHandler
{
    public event EventHandler<EventArgs> OnFileTransferSuccess;
    public void FireEvent()
    {
        if (OnFileTransferSuccess != null)
        {
            OnFileTransferSuccess(this, new EventArgs());
        }
    }
}

我在代码中使用它来触发事件(调用方法)

FileTransferSuccessHandler fileTransferSuccessHandler = new FileTransferSuccessHandler();
fileTransferSuccessHandler.OnFileTransferSuccess += ImportDataIntoDatabase;
fileTransferSuccessHandler.FireEvent();

而我将要执行的代码写在:

private void ImportDataIntoDatabase(object sender, EventArgs e)
{
}