令牌“{”上的java语法错误,应在该令牌之后切换标签
当我从微调器类中选择选项时,我想打开新表单
我尝试了这个,但我有语法错误
Syntax error on token "{", SwitchLabels expected after this token
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tf);
Spinner spinner2 = (Spinner) findViewById(R.id.spinner2);
ArrayAdapter<CharSequence> adapter2 = ArrayAdapter.createFromResource(
this, R.array.tfoptions,安卓.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(
安卓.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(adapter2);
spinner2.setOnItemSelectedListener(new MyOnItemSelectedListener());
public class MyOnItemSelectedListener implements OnItemSelectedListener {
public void onItemSelected(AdapterView<?> parent,
View view, int pos, long id) {
switch (view.isClickable()) { <---------------- syntax error
Spinner spinner2;
case spinner2.setSelection(0):
startActivity(new Intent(this,To.class));
break;
case spinner2.setSelection(1):
startActivity(new Intent(this,out.class));
default:
break;
}
}
public void onNothingSelected(AdapterView parent) {
// Do nothing.
}
}
}
# 1 楼答案
您试图在第一个
case
块之前声明一个变量。你不能这么做。将变量声明移到switch
上方# 2 楼答案
朋友,你不能在switch语句中声明变量:
相反,您必须超越微调器声明:
顺便说一句,在你的代码中你没有初始化微调器。。。,你也应该这样做:
# 3 楼答案
我假设
view.isClickable()
返回一个布尔值,在这种情况下,应该使用if
而不是switch
也就是说,什么是^{
案例标签不能调用代码,也不能是动态的。
case
标签应该是常量,可以是整数,也可以是枚举值您还声明了
Spinner spinner2;
(正如奥利指出的,声明的位置不对),但它没有设置为任何值,因此即使您可以执行它,您的spinner2.setSelection(x)
也会抛出NullPointerException