簡體   English   中英

Alertdialog在while語句中彈出

[英]Alertdialog pop inside a while statement

我有一個警報框,用戶可以在其中輸入人員姓名,然后按確定,如果要輸入其他人員姓名,則再次出現該框。 以下代碼可以正常工作,但是如果要添加的人數過多(例如50位),我的平板電腦將崩潰並重置。 我很確定會發生這種情況,因為有50個對話框彼此重疊,並且我的平板電腦用盡了內存並關閉。

我如何才能等待用戶輸入名稱然后再次運行?

        while(i < number)
        {
            final AlertDialog.Builder alert = new AlertDialog.Builder(this);
            final EditText input = new EditText(this);
            alert.setMessage("Enter persons name (" + (number - i) + " names left to enter)");
            alert.setView(input);
            alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() 
            {
                public void onClick(DialogInterface dialog, int whichButton) 
                {
                    String value = input.getText().toString().trim();
                    setUp(value);
                }
            });
            alert.show();
            i++;
        }

是的,您正在同時顯示所有警報。

偽代碼可避免此問題:

function showAlerts(Integer i) {
    if (i < number) {
        // Build the alert and display it
        alert.setPositiveButton(..., new OnClickListener() {
            setup(...);
            showAlerts(i+1);
        }
    }
}

showAlerts(0);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM