无法使用计时器,自定义视图和Xamarin关闭AlertDialog

时间:2013-04-05 16:09:13

标签: xamarin.android alertdialog splash-screen xamarin

我想使用AlertDialog.Builder,自定义视图和计时器制作启动画面。

我正在使用Xamarin.Android - 我似乎没有'dismiss'方法,我可以调用'dispose'但是alertDialog视图没有关闭。

以下示例代码:

public class SplashDialog
{
    private readonly AlertDialog.Builder _alert;
    private readonly View _view;


    public SplashDialog(Context context)
    {
        _alert = new AlertDialog.Builder(context);

        var layoutInflater = (LayoutInflater)context.GetSystemService(Context.LayoutInflaterService);
        _view = layoutInflater.Inflate(Resource.Layout.splash, null);
        _alert.SetView(_view);

    }

    public void Show()
    {
        _alert.Show();

      /*
        new Thread(() =>
        {
            Thread.Sleep(3000);
            _view.Dispose();
            _alert.Dispose();

        }).Start();
         * */

        new Handler().PostDelayed(() =>
            {
                _view.Dispose();
                _alert.Dispose();

            }, 3000);
    }
}

1 个答案:

答案 0 :(得分:7)

确实AlertDialog.Builder没有Dismiss()方法,但是当您致电_alert.Show()时,它会返回AlertDialog个实例,其Dismiss()方法。你只需要将实例保存在某处并在需要时调用它,就像这样

private AlertDialog _dialog;

public void Dismiss()
{
    _dialog.Dismiss();
}