我有一个警告框,用户可以按下确定输入人名,如果有另一个人姓要输入,则该框再次出现。下面的代码确实有效,但如果有大量的人添加(如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++;
}
答案 0 :(得分:1)
是的,您正在同时显示所有提醒。
伪代码以避免此问题:
function showAlerts(Integer i) {
if (i < number) {
// Build the alert and display it
alert.setPositiveButton(..., new OnClickListener() {
setup(...);
showAlerts(i+1);
}
}
}
showAlerts(0);