使用 for 循环和提示对话框的用户输入显示不同的行为

input from user using for loop and prompt dialogue box shows different behaviour

我使用下面的代码在 android 应用程序中获取用户输入。它运行良好,但我在多次尝试后发现的是。 从 for 循环调用下面的方法以获得不同的值。

  1. 代码以相反的顺序接受输入,即它必须为 x 然后是 y 取值。在应用程序上,我被要求输入 y 的值,然后输入 x。

  2. 它不等待用户输入它显示对话框,而是保持 运行 整个程序。因为当我输入任何值时,它不会像必须做的那样进行任何更改。

我认为对话框顺序颠倒也是出于同样的原因,第二个对话框与第一个对话框重叠。

除非用户输入任何数据然后继续前进,否则如何让它停止? 此外,当我从代码中的编辑框中删除 final 时,它会给出错误请使用删除视图,因为此 child 已经有一个 parent 等

代码如下

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 对话框重叠。 async 行为试图找到其他方法。

您可以从 positivenegative 按钮的 OnClick 方法中调用此方法 IE 当用户按下 okcancel 按钮时,然后检查您的条件是否显示另一个对话框并调用生成对话框的函数。