gpt4 book ai didi

android - AlertDialog 不等待输入

转载 作者:行者123 更新时间:2023-11-29 14:42:35 25 4
gpt4 key购买 nike

我在 for 循环内的 switch case 语句中创建了一个 AlertDialog。在 AlertDialog 上有一个用于输入的 EditText。当框弹出时,for 循环在后台运行。我希望循环等到输入被发送才能继续。这是 AlertDialog 的代码:

for(int i=0; i < code.length(); i++){
switch(code.charAt(i)){
case '+':
bytes[index]++;
break;
case '-':
bytes[index]--;
break;
case '<':
if(index > 0){
index--;
}else{
Toast.makeText(this, "Warning: Index is already at zero", Toast.LENGTH_LONG).show();
}
break;
case '>':
if(index <= 500){
index++;
}else{
Toast.makeText(this, "Warning: Maximum bytes reached", Toast.LENGTH_LONG).show();
}
break;
case ']':
if(loop == -1){
Toast.makeText(this, "ERROR: Close bracket before an open bracket!", Toast.LENGTH_LONG).show();
errors++;
break;
}else{
if(bytes[index] == 0){
loop = -1;
}else{
i = loop;
}
break;
}
case '[':
loop = i;
break;
case '.':
stdout(Character.toString((char)bytes[index]));
break;
case ',':
AlertDialog.Builder alert = new AlertDialog.Builder(this).setCancelable(false);

alert.setTitle("Enter Character");
alert.setMessage("Script is requesting input");

final EditText input = new EditText(this);
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(1);
input.setFilters(FilterArray);

alert.setView(input);

alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
setByte(input.getText().toString().charAt(0));
}
});

alert.show();
break;
}
if(errors > 0){
break;
}
}

最佳答案

正如其他人所说,Android 对话框不是模态的(也就是说,它们不会阻止后台进程)。阅读我的 blog post有关如何通过注册回调解决此问题的教程。

关于android - AlertDialog 不等待输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com