0

我建立了两个活动,MainActivity 将一些变量传递给活动“计算”。这按预期工作,并且变量已正确提交和接收。我现在想根据意图“size”的值创建整数“size_int”。问题出现在这一行:

    debug1.setText(size_int);

Eclipse 告诉我应该创建一个名为“size_int”的局部变量。我不明白为什么不能在这一行中使用“size_int”,因为它之前已经在 if 语句中定义过。你对此有什么想法吗?我假设在 if 语句中定义了变量“size_int”,但我不确定。

这是完整的代码:

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);

    }



}
4

2 回答 2

0

改变如下。这是因为如果你在大括号内声明,范围是有限的,所以你需要通过在外面声明来增加范围

int size_int = 0; 
if (size.equals("Small")) {
            size_int = 30;
}
于 2012-10-21T15:50:27.890 回答
0

您需要阅读称为“可变范围”的概念。通常,在代码块中声明的变量是该代码块的本地变量,并且在外部不可见。因此,您应该在您的外部size_int 声明if()

    int size_int = 0;
    if (size.equals("Small")) {
        size_int = 30;
    }

通常,在代码块外声明的变量在代码块中是可见的,而在代码块内声明的变量是该代码块的本地变量。

于 2012-10-21T15:54:41.220 回答