我是Xamarin Android的新手。我有一个Activity,当按下textview时会显示一条警告。 AlertDialog的代码是:
textView1.Click += (sender, e) =>
{
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.SetTitle("title");
alert.SetMessage("Message");
alert.SetCancelable(false);
alert.SetPositiveButton("Cerrar Sesión", delegate { funcCerrarSesion(); });
alert.SetNegativeButton("Salir", delegate { Finish(); });
alert.SetNeutralButton("Volver", delegate { });
RunOnUiThread(() =>
{
alert.Show();
});
};
我需要按下后退按钮,此事件关闭AlertDialog。 谢谢。
PD:我是Visual Studio 2012 +插件Xamarin的开发者
编辑(ρяσѕρєяK's Solution):
Dialog dialog;
protected override void OnCreate(Bundle bundle)
{
..
textView1.Click += (sender, e) =>
{
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.SetTitle("Advertencia");
alert.SetMessage("Está seguro?");
alert.SetCancelable(false);
alert.SetPositiveButton("Cerrar Sesión", delegate { funcCerrarSesion(); });
alert.SetNegativeButton("Salir", delegate { Finish(); });
alert.SetNeutralButton("Volver", delegate { });
RunOnUiThread(() =>
{
dialog = alert.Create();
dialog.Show();
});
};
...
}
public override void OnBackPressed()
{
if (dialog != null)
{
if (dialog.IsShowing)
{
dialog.Dismiss();
}
else
{
base.OnBackPressed();
}
}
else
{
base.OnBackPressed();
}
}
此操作会继续显示警告,但在按下back button
时,警报未关闭。
答案 0 :(得分:1)
我需要按下后退按钮,此事件关闭 AlertDialog
按后退按键取消对话框:
1。覆盖OnBackPressed
。
2。需要访问alert
中的OnBackPressed
对象,因此在alert
之前声明OnCreate
对象:
public override void OnBackPressed()
{
if (alert !=null){
if(alert.IsShowing){
alert.Dismiss ();
}else{
base.OnBackPressed();
}
}else{
base.OnBackPressed();
}
}