我有一个方法:
void someMethod(String someString)
final String[] testAgainst = {...};
....
for(int i = 0; i < testAgainst.length; i++) {
if (someString.equals(testAgainst[i])) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Strings are the same! Overwrite?")
.setTitle("Blah Blah Blah")
.setCancelable(false)
.setPositiveButton("Overwrite", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface di, int which) {
someAction()
}
})
.setNegativeButton("Nah", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface di, int which) {
ESCAPE
}
});
AlertDialog dialog = builder.create();
}
}
doSomeOtherStuff();
}
事情是这样的,如果我的代码到达ESCAPE
(即用户决定不覆盖),我想完全退出该方法。我试过了...
- 更改
someMethod()
为返回一个布尔值,然后从否定按钮返回它,但它不会让我因为它在一个 void 内部方法中。 - 抛出异常从
ESCAPE
外部捕获,但编译器不会让我因为DialogInterface.OnClickListener
不抛出。 - 使用
break
语句离开for
循环,但这也不起作用。
for
简单地离开循环也是可以接受的。我可以解释这一点。我已经尝试了所有我能找到的东西,但我已经无能为力了。