我正在尝试在这里创建我的第一个android应用程序,但偶然发现了一个问题,我需要在if-else语句之间使用变量的值。
@Override
public void onClick(View view) {
int guess, x, y;
String st_bot, st_top;
if(view.getId() == R.id.btn_guess){
st_bot = bot.getText().toString();
st_top = top.getText().toString();
x = Integer.parseInt(st_bot);
y = Integer.parseInt(st_top);
guess = (x+y)/2;
tv_guess.setText(Integer.toString(guess));
} else if (view.getId() == R.id.btn_bigger){
st_bot = tv_guess.getText().toString();
//st_top = top.getText().toString();
guess = Integer.parseInt(st_bot);
//y = Integer.parseInt(st_top);
guess = (guess+y)/2;
tv_guess.setText(Integer.toString(guess));
} else if (view.getId() == R.id.btn_smaller){
//st_bot = bot.getText().toString();
st_top = tv_guess.getText().toString();
//x = Integer.parseInt(st_bot);
guess = Integer.parseInt(st_top);
guess = (x+guess)/2;
tv_guess.setText(Integer.toString(guess));
}
}
我想从R.id.btn_guess语句中传递变量x和y,以便可以在其他状态下使用先前已分配的值使用它。但是当我这样做时,x和y显示尚未初始化。
当我尝试使用Java编译器(而不是android)进行编译时,可以在其他语句中使用变量,而无需重新分配它。
此问题的解决方法是什么?谢谢。
答案 0 :(得分:2)
根据您的变量名,我猜您正在实施类似“猜大或小”的游戏。
您似乎想要在分支x
中分配y
和view.getId() == R.id.btn_guess
,然后在其他两个分支中使用它们。如果这确实是您的需要,只需将x
和y
的声明拉到函数外部,即可使它们具有更宽的variable scope,并将它们保留在之后 onClick
函数在第一次结束。
答案 1 :(得分:0)
您可以使用Integer类并将其设置为null,也可以将ints初始化为0
答案 2 :(得分:-1)
尝试在下面说一下,看看会发生什么。
intgues = 0,x = 0,y = 0; 字符串st_bot =“”,st_top =“”;