我构建了两个活动,MainActivity将一些变量传递给活动“计算”。这可以按预期工作,并且可以正确地提交和接收变量。我现在想要根据意图“大小”的值创建整数“size_int”。问题出现在这一行:
debug1.setText(size_int);
Eclipse告诉我,我应该创建一个名为“size_int”的局部变量。我不明白为什么“size_int”不能在这一行中使用,因为它已在之前的if语句中定义。你有什么想法吗?我假设有一些事情要做,变量“size_int”在if语句中定义,但我不确定。
以下是完整代码:
package com.example.eggtimer;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class Calculation extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calculation);
// get Intents (Size, Temperature and yolk from Main Activity)
String size = getIntent().getExtras().getString("size");
String temperature = getIntent().getExtras().getString("temperature");
String yolk = getIntent().getExtras().getString("yolk");
if (size.equals("Small")) {
int size_int = 30;
}
// Debug Variables
TextView debug1 = (TextView) findViewById(R.id.textViewDebug1);
debug1.setText(size_int);
}
}
答案 0 :(得分:0)
如下更改。这是因为如果你在大括号内声明,范围是受限制的,所以你需要通过声明外部来增加范围
int size_int = 0;
if (size.equals("Small")) {
size_int = 30;
}
答案 1 :(得分:0)
您需要阅读名为"变量范围"的概念。通常,代码块中的变量声明对于该代码块是 local ,并且在外部不可见。因此,您应该在size_int
之外声明if()
:
int size_int = 0;
if (size.equals("Small")) {
size_int = 30;
}
通常,在代码块外部声明的变量在块中可见,而在代码块内声明的变量对于该代码块是本地的。