Xamarin Forms DisplayAlert():为什么WinPhone和Android中有不同数量的参数

时间:2016-03-09 12:25:53

标签: xamarin xamarin.forms

我想在我的ContentPage中使用DisplayAlert来显示一条简单的消息,通过点击" OK"按钮,所以我的第三个参数是" OK"。这意味着:我不需要第二个按钮的第四个参数。现在我发现Windows Phone和Android之间存在差异:

  • 在Android中使用null会仅使用三个引发异常 论证有效。
  • 使用WinPhone的三个参数给出了 编译时错误"方法' DisplayAlert'没有过载需要3 参数&#34 ;.

我想知道:我是否只需要编写一个DependencyService来显示只有一个按钮的警报?

WinPhone运行时版本:v4.0.30319 Android支持版:v5

更新Dylan的评论:

async void OnMyEvent(object sender, EventArgs args)
{
    await DisplayAlert("Message 1", "Hello Android!", "OK"); // <- works on Android but doesn't compile on WinPhone
    await DisplayAlert("Message 2", "Hello WinPhone!", "OK", null); // <- works on WinPhone but throws a null pointer exception on Android
}

2 个答案:

答案 0 :(得分:5)

您可以将“确定”按钮作为取消按钮,如下所示:

var result = await DisplayAlert("Message", "Hello there!", null, "OK");

这将显示一个只有一个OK按钮的警告框。然后检查result是否为false。如果是,那意味着&#34; OK&#34;单击按钮。

E.g。

var result = await DisplayAlert("Message", "Hello there!", null, "OK");
if (!result) //result is false
    //Do something

答案 1 :(得分:0)

这是我现在的解决方法:

<html>
  <body>
    <button onclick="alert('hi')">Click me</button>
  </body>   
</html>

也许有一个更好的......