为什么我不能在同一个类中使用旋转器中的int?

时间:2012-04-05 13:24:12

标签: java android

好吧所以我正在开发一个Android应用程序,我已经植入了微调器......我总共有四个微调器,我已经了解到如果微调器从字符串中读取选项,它就有一个定义的选择号码(即第一个选项是“0”,接着是“1”,依此类推)

我有微调器的以下代码

        Spinner a = (Spinner) findViewById(R.id.spinner1);
    a.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView adapter, View v, int a,
                long lng) {
            // do something here
            Toast.makeText(adapter.getContext(), "You selected: " + a,
                    Toast.LENGTH_SHORT).show();
        }

        @Override
        public void onNothingSelected(AdapterView arg0) {
            // do something else
        }
    });

和另一个但使用int“b”

但是后来在同一个班级我想用一些数学得到e = a,b(即如果a = 6且b = 5 e = 65,或a = 4且b = 3 e = 43) 这可以通过执行

轻松完成
int e=a*10+b;

问题是我想按下按钮时显示这个,所以我有以下代码

public void Calc(View v) {
    int e = a * 10 + b;
    Toast.makeText(this, "Value: " + e, Toast.LENGTH_LONG).show();
}

但导致错误“”a“&”b“无法解析为变量” 为什么会这样,我如何创建一个能够读取这些变量的按钮?

1 个答案:

答案 0 :(得分:0)

这是范围问题,因为您在方法中声明了a,因此无法在方法之外访问它。将微调器声明为类成员,并仅在方法中指定它:

课程范围:

Spinner a;

在方法中:

a = (Spinner) findViewById(R.id.spinner1);

然后:

public void Calc(View v) {
    int itemA, itemB;
    itemA = a.getSelectedItemPosition();
    itemB = b.getSelectedItemPosition();
    int e = itemA * 10 + itemB;
    Toast.makeText(this, "Value: " + e, Toast.LENGTH_LONG).show();
}