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

Erl*_*end 2 splash-screen xamarin.android android-alertdialog 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

Aar*_* He 7

这是真的AlertDialog.Builder没有Dismiss()方法,但是当你调用时_alert.Show(),它返回一个AlertDialog具有该Dismiss()方法的实例.你只需要将实例保存在某个地方并在需要时调用它,就像这样

private AlertDialog _dialog;

public void Dismiss()
{
    _dialog.Dismiss();
}
Run Code Online (Sandbox Code Playgroud)