如何在 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)
{
}
我创建了以下 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)
{
}