Я пишу статический метод, и я испытываю проблемы с доступом к переменной из внутреннего метода. Я получаю следующее сообщение об ошибке в Eclipse:Невозможно назначить локальную переменную, потому что она определена снаружи
Конечная локальная переменная RET не может быть назначена, так как она определена в типе ограждающей
Вот мой код:
public static boolean noInternetAlertDialog(Context ctx) {
final boolean ret;
AlertDialog.Builder builder;
builder = new AlertDialog.Builder(ctx);
builder.setCancelable(false);
builder.setTitle("Error");
builder.setMessage("Connection error");
builder.setPositiveButton("Retry", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which)
{
dialog.dismiss();
ret = false;
}
});
builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
ret = false;
}
});
AlertDialog dialog = builder.create();
dialog.show();
if (ret)
return true;
else
return false;
}
попробуйте использовать только декларацию: (т.е. final boolean ret = false;) и не устанавливайте его во внутренних методах. – Martin
Я получаю эту ошибку в 'ret = false;', а не в 'final boolean ret; ' – smartmouse
№. см. мой ответ ниже – Martin