У меня есть метод:
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()
, чтобы вернуть логическое значение, а затем вернуть его с отрицательной кнопки, но он не позволит мне, потому что это внутри пустого внутреннего метода. - выдает исключение из
ESCAPE
для перехвата извне, но компилятор не разрешит мне, потому что DialogInterface.OnClickListener
не выдает. - с помощью оператора
break
для выхода из for
цикл, но это тоже не работает.
Также было бы приемлемо просто выйти из цикла for
.Я могу объяснить это.Я перепробовал все, что смог найти, и я на грани ума.