在我的应用程序代码的某些部分中,我有一个显示 AlertDialog 以从用户那里获取值(数字)的方法。但是当我尝试将它保存在一个变量(int)中并返回它时,我得到了这个编译错误:
错误说:“不能在以不同方法定义的内部类中引用非最终变量bet ”
所以我尝试将 bet 作为最终变量,得到一个新错误:“无法分配最终局部变量 bet,因为它是在封闭类型中定义的”
我的想法是调用该方法,显示警报对话框,获取输入值并返回它。
在我的应用程序代码的某些部分中,我有一个显示 AlertDialog 以从用户那里获取值(数字)的方法。但是当我尝试将它保存在一个变量(int)中并返回它时,我得到了这个编译错误:
错误说:“不能在以不同方法定义的内部类中引用非最终变量bet ”
所以我尝试将 bet 作为最终变量,得到一个新错误:“无法分配最终局部变量 bet,因为它是在封闭类型中定义的”
我的想法是调用该方法,显示警报对话框,获取输入值并返回它。
声明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...
}
}
我发现的问题的“解决方案”是下一个:
我将需要用户输入的代码移到“onClick();”中
您可以简单地全局分配变量并使用它。
有关更多说明,请参见此处,
任何使用但未在内部类中声明的局部变量、形式方法参数或异常处理程序参数都必须声明为 final。任何在内部类中使用但未声明的局部变量必须在内部类的主体之前明确分配(第 16 节)。