Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 持续显示输入对话框,直到用户输入预期输入-Android_C#_Android_Asynchronous_Dialog_Xamarin.android - Fatal编程技术网

C# 持续显示输入对话框,直到用户输入预期输入-Android

C# 持续显示输入对话框,直到用户输入预期输入-Android,c#,android,asynchronous,dialog,xamarin.android,C#,Android,Asynchronous,Dialog,Xamarin.android,我试图提示用户输入安全PIN,以允许他们访问应用程序。我遇到问题的部分是,如果输入的pin不正确,会反复用输入对话框提示用户 如果pin不正确,不确定如何“重新显示”对话框 当前代码: bool correct = false; AlertDialog.Builder dialog = new AlertDialog.Builder(this); dialog.SetTitle("Enter Security PIN"); EditText input = new EditText(this);

我试图提示用户输入安全PIN,以允许他们访问应用程序。我遇到问题的部分是,如果输入的pin不正确,会反复用输入对话框提示用户

如果pin不正确,不确定如何“重新显示”对话框

当前代码:

bool correct = false;
AlertDialog.Builder dialog = new AlertDialog.Builder(this);
dialog.SetTitle("Enter Security PIN");
EditText input = new EditText(this);
dialog.SetView(input);
dialog.SetPositiveButton("Login", (sender, args) =>
{
    // check pin
    string pin = prefs.GetString("pin", "0");
    if (pin.CompareTo(input.Text) == 0)
    {
        correct = true;
    }
    else
    {
        // ??????? what to do here to redisplay dialog or prevent dismissal
    }
});

dialog.SetNegativeButton("Exit", (sender, args) =>
{
    this.Finish();
});
dialog.Show();

您应该将代码放入函数中,然后在
else

中再次调用该函数。或者,您可以在EditText上调用方法EditText.setError(“无效pin”),并以这种方式显示不正确的pin,而不是AlertDialog。如果出现错误,在他成功提交pin之前什么也不做。

所以递归创建对话框,直到给出正确的pin?最简单的解决方案!:)我遇到的问题是阻止对话框自动关闭,我相信这种解决方案仍然会出现这种情况。