从AlertDialog OnClick中断出循环/继续下一步

时间:2014-10-13 08:50:08

标签: android loops alertdialog break

我正在开发一个应用程序,要求我在某些条件下循环访问对象,需要询问用户是否要继续或停止。

所以我编写了类似的东西。

for (int i = 0; i < 10; i++) {
  if (i == 5) {
    new AlertDialog.Builder(this)
      .setTitle("WARNING")
      .setMessage("Do you want to continue?")
      .setPositiveButton("OK", null)
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                              break; // -> Not working
                            }
       })
      .setCancelable(false)
      .create()
      .show();
  }
}

但是,上面的代码显示“break”错误行说“打破外面或转换循环”。

我也尝试过使用标签并使用“break LABEL”;但是我收到错误“Undefined label:LABEL”。

任何人都可以提供帮助。

感谢。

ANK

我会接受Haresh的答案,因为它确实回答了我的问题。然而,正如佩德罗·奥利维拉(Pedro Oliveira)所指出的那样,它并没有阻止完成循环,这就是我所追求的。需要找到另一种方法。

2 个答案:

答案 0 :(得分:1)

请尝试这种方式,希望这有助于您解决问题。

在类级别创建一个标志并在cancle按钮中更改此标志值并尝试在循环中停止循环标记。

public class MainActivity extends Activity {

    private boolean isStop;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        for (int i = 0; i < 10; i++) {
            if (i == 5) {
                new AlertDialog.Builder(this)
                        .setTitle("WARNING")
                        .setMessage("Do you want to continue?")
                        .setPositiveButton("OK", null)
                        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                                isStop = true;
                            }
                        })
                        .setCancelable(false)
                        .create()
                        .show();
            }
            if (isStop) {
                break;
            }
        }
    }
}

答案 1 :(得分:0)

为此设置一个布尔标志,如:

boolean keepGoing= true;//u mad bro?

while(i < 10 && continue){
// your loop


if(i == 5){
 new AlertDialog.Builder(this)
      .setTitle("WARNING")
      .setMessage("Do you want to continue?")
      .setPositiveButton("OK", null)
      .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialogInterface, int i) {
                              keepGoing=false//
                            }
       })
      .setCancelable(false)
      .create()
      .show();
}
i++;
}