Постоянно отображать диалог ввода, пока пользователь не введет ожидаемый ввод - Android - PullRequest
3 голосов
/ 28 июня 2011

Я пытаюсь попросить пользователя ввести PIN-код безопасности, чтобы он мог получить доступ к приложению.Часть, с которой у меня возникают проблемы, - это неоднократный вывод пользователю диалогового окна ввода, если введенный пин-код неправильный.

Не уверен, как «повторно отобразить» диалоговое окно, если пин-код неправильный.1003 *

Текущий код:

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();

Ответы [ 2 ]

4 голосов
/ 28 июня 2011

Вы должны поместить свой код в функцию и снова вызвать функцию в else.

0 голосов
/ 28 июня 2011

В качестве альтернативы для вашего EditText вы можете вызвать метод EditText.setError («Неверный пин-код») и таким образом отобразить неверный пин-код вместо AlertDialog.Если это ошибки, ничего не делать, пока он не отправит пин-код.

...