等待用户确认Xamarin.Android的AlertDialog

本文关键字:AlertDialog Android Xamarin 用户 确认 等待 | 更新日期: 2023-09-27 18:27:28

在执行某段代码之前,我需要等待用户确认。这是我构建和显示AlertDialog:的地方

private bool AskForCommand()
{
    bool userOK = false;
    AlertDialog.Builder dialog = new AlertDialog.Builder(this);
    dialog.SetPositiveButton("Yes", (sender, args) =>
    {
        userOK = true;
    })
    .SetNegativeButton("No", (sender, args) =>
    {
        userOK = false;
    })
    .SetMessage("Send vocal command now?")
    .SetTitle("System Message");
    RunOnUiThread(() =>
    {
        dialog.Show();
    });
    return userOK;
}

这里是我称之为方法的地方:

if (!string.IsNullOrEmpty(exactSpeech))
{
    bool userOK = false;
    try
    {
        userOK = AskForCommand();
    }
    catch (Exception ex)
    {
        //TODO: catch
    }
    if (cfg.InstantSendVocal || userOK)
        SendCommandToBoard(exactSpeech);
}

问题是警报显示在方法"SendCommandToBoard"之后。

等待用户确认Xamarin.Android的AlertDialog

只需在SetPositiveButton回调中放入以下代码
dialog.SetPositiveButton("Yes", (sender, args) => { if (cfg.InstantSendVocal) SendCommandToBoard(exactSpeech); }

忘记名为userOK 的布尔变量