我是android开发的新手,所以请多多包涵。我最近一直在关注一些对话框教程,并意识到创建对话框并将其显示给用户是多么冗长。所以我把所有相关的对话框代码放到了一个方便的静态方法中。见下文:
public static boolean dialog(Context context, String text)
{
boolean result = false;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(text);
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
result = true;}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
result = false;}
});
AlertDialog dialog = builder.create();
dialog.show();
return result;
}
但是,当编译器不喜欢这些行result = true
或result = false
. 它返回错误Cannot refer to a non-final variable result inside an inner class defined in a different method
。
我一直在寻找这个答案的解决方案,但是我没有正确理解所有答案,或者它们不是我的问题的正确解决方案(例如,我不能只将变量设为“最终”)。
任何解决此问题的建议将不胜感激。