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

时间:2016-05-24 02:45:50

标签: java android for-loop user-input alertdialog

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

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

  2. 它不会等待用户输入它显示对话框但继续运行整个程序。因为我输入任何值时都不会做任何改变。

  3. 我认为对话框的相反顺序也与第二个对话框与第一个对话框重叠的原因相同。

    除非用户输入任何数据然后继续前进,否则如何让它停止? 当我从代码中的编辑框中删除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();
    

2 个答案:

答案 0 :(得分:0)

因为对话框每次迭代都会相互重叠。实际上,x首先出现但是与y对话框重叠。一个异步行为试图找到其他方法。

答案 1 :(得分:0)

您可以使用正面否定按钮的 OnClick 方法调用此方法 即 当用户按 ok 取消按钮时,检查您的条件是否显示另一个对话框,并调用正在生成对话框的功能。