我正在开发一个应用程序,要求我在某些条件下循环访问对象,需要询问用户是否要继续或停止。
所以我编写了类似的东西。
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)所指出的那样,它并没有阻止完成循环,这就是我所追求的。需要找到另一种方法。
答案 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++;
}