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