0

好的,所以我正在开发一个 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”无法解析为变量”为什么会这样以及如何创建一个能够读取这些变量的按钮?

4

1 回答 1

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();
}
于 2012-04-05T13:25:37.477 回答