我使用以下代码在Android应用程序中获取用户输入。 它运行良好,但经过多次尝试后我发现的是这样。下面的方法从 for 循环调用以获取不同的值。
-
代码以相反的顺序接受输入,即它必须取 x 的值,然后是 y.在应用程序上,我被要求输入 y 的值,然后输入 x。
它 不等待用户输入,它显示对话框,但继续运行整个程序。 当我输入任何值时,都不会像必须的那样进行任何更改。
我认为,对话框的反向顺序也与第二个对话框与第一个对话框重叠的原因相同。
除非用户输入任何数据然后继续前进,否则如何使其停止?此外,当我从代码的编辑框中删除 Final 时,它给出了错误"请使用删除视图",因为这个孩子已经有父级等。
下面提供了代码
void var_init(String to_match,String[][] temp) {
String t_match=to_match;
//problem in the below line
AlertDialog.Builder builder = new AlertDialog.Builder(RuleEngine.this);
builder.setTitle("Enter Value for"+t_match);
// Set up the input
final EditText input = new EditText(RuleEngine.this);
builder.setView(input);
// Set up the buttons
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
t_replace = input.getText().toString();
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
这是因为对话框在每次迭代时都会相互重叠。 实际上,X 排在第一位,但与 Y 对话框重叠。 作为异步行为尝试找到其他方法。
您可以从正按钮或负按钮的 OnClick 方法调用此方法即当用户按"确定"或"取消"按钮时,请检查您的条件是否显示另一个对话框,并调用生成对话框的函数。