在我的应用程序代码的某些部分,我有一个方法,显示AlertDialog以从用户获取值(数字)。但是当我尝试将它保存在变量(int)中并返回它时,我得到了这个编译错误:
错误说:“不能在不同方法中定义的内部类中引用非最终变量 bet ”
所以我尝试下注最后一个变量,得到一个新的错误:“无法分配最终的局部变量赌注,因为它是以封闭类型定义的”
我的想法是调用该方法,显示警告对话框,获取输入值并将其返回。
答案 0 :(得分:1)
将bet
声明为全局变量。
public class SomeActivity extends Activity {
int bet=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
private int betDialog()
{
//some code...
}
}
答案 1 :(得分:0)
您可以简单地全局分配变量并使用它。
有关详细说明,请参阅此处
Cannot refer to a non-final variable inside an inner class defined in a different method
正如here
提到的jon-skeet任何局部变量,形式方法参数或异常处理程序 必须声明已使用但未在内部类中声明的参数 最后。使用但未在内部类中声明的任何局部变量 必须在内部类的主体之前明确地分配(§16)。
答案 2 :(得分:0)
我发现问题的“解决方案”是下一个:
我在'onClick();'
中移动了需要用户输入的代码