Xamarin形式:DisplayAlert不起作用

时间:2017-12-01 07:13:14

标签: xamarin.forms

逗人,

我在我的项目中使用DisplayAlert来显示没有互联网连接警报。不幸的是,它没有用。

它在另一部分工作正常。我不知道它为什么会这样。

我的代码:

            if (Utility.IsInternet())
            {
               UserTweetsList();
            }
            else
             {
                Debug.WriteLine("Enter no internet block");
               DisplayAlert("Alert", "No internet connection", "Ok");
             }

代码进入else块并在输出中打印“Enter no internet block”,但不显示警告消息。

可能的原因是什么?

提前致谢....

3 个答案:

答案 0 :(得分:3)

请尝试以下代码:

Device.BeginInvokeOnMainThread(async () => 
{ 
    await DisplayAlert("Alert", "No internet connection", "Ok"); 
});

答案 1 :(得分:2)

一个可能的问题是您从页面或视图外部调用DisplayAlert。在我的一个应用程序中,我有一个与我的视图分开的类,并解决此问题并调用我使用的DisplayAlert:

App.Current.MainPage.DisplayAlert(...);

答案 2 :(得分:0)

我今天遇到了困难,似乎没有任何修复对我有用。不过我已经解决了,这对我有用。在类背后的代码中,我创建了一个公共变量:

public bool deleteAccountAnswer = false;

调用deleteAccountPopup方法并在on completed事件中回调

deleteAccountPopup().OnCompleted(() => removeAccount());

删除账号弹出代码:

public System.Runtime.CompilerServices.TaskAwaiter deleteAccountPopup()
    {
        return Device.InvokeOnMainThreadAsync(async ()=>
        {
            deleteAccountAnswer = await this.DisplayAlert("Account Deletion", "You have sure you want to delete the selected account?", "Yes", "No");
        }).GetAwaiter();
    }

...回电

public void removeAccount()
    {
        if (deleteAccountAnswer) // was yes not no
        {