我目前正在为Android制作计算器(我没有使用任何教程)并遇到了问题。
我有这个:
public void buttonOnClick(View v){
int operation;
switch (v.getId()){
case R.id.one:
numberBox.append("1");
break;
case R.id.two:
numberBox.append("2");
break;
case R.id.plus:
operation=1;
break;
case R.id.eq:
if (operation == 1){
// Print value
}
break;
default:
break;
}
}
请注意,这不是确切的代码,它只是一个模型。
问题是,在这个案例的范围内,当操作设置为1时,它没有公开设置,当我在equals情况下读取它时,它被设置回0.
如何解决此问题?
答案 0 :(得分:2)
您必须是Java或任何其他编程语言的新手:
局部变量仅用于声明它们的方法 无论什么时候退出方法,变量都会被销毁以及它的值。
因此,每次输入新变量时都会初始化。
要完成这项工作,只需创建一个全局类变量并使用它或
将对象传递给包含某个int变量的方法:当前操作,然后使用该对象读/写变量。
答案 1 :(得分:0)
在您的情况下,最好使用全局类变量:
public class MyClass {
int operation;
public int getOperation() {
return operation;
}
public void setOperation(int value) {
this.operation = value;
}
.....
....
public void buttonOnClick(View v){
...
case R.id.plus:
this.operation = 1;
break;
case R.id.eq:
if (this.operation == 1){
// Print value
}
break;
.....