我想在从微调器类
中选择选项时打开新表单我试试这个,但我有语法错误
令牌“{”上的语法错误, SwitchLabels预计在此之后 令牌
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,android.R.layout.simple_spinner_item);
adapter2.setDropDownViewResource(
android.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.
}
}
}
答案 0 :(得分:4)
您尝试在第一个case
块之前声明变量。你不能做这个。将变量声明移到switch
。
答案 1 :(得分:1)
我假设view.isClickable()
返回一个布尔值,在这种情况下你应该使用if
而不是switch
。
那说什么是case spinner2.setSelection(0):
??
案例标签不能调用代码,也不能是动态的。
case
标签应该是常量,可以是整数或枚举值。
你也宣布Spinner spinner2;
(并且在Oli指出的情况下将其声明放在错误的位置)但它没有设置为任何东西,所以你的spinner2.setSelection(x)
会抛出NullPointerException,即使你可以得到这个执行。
答案 2 :(得分:1)
我的朋友你不能在switch语句中声明一个变量:
View view, int pos, long id) {
switch (view.isClickable()) {
Spinner spinner2; <---------------- here is your syntax error
case spinner2.setSelection(0):
startActivity(new Intent(this,To.class));
break;
case spinner2.setSelection(1):
startActivity(new Intent(this,out.class));
default:
break;
}
}
相反,你必须超越你的Spinner声明:
View view, int pos, long id) {
Spinner spinner2; // <---------------- now it's ok
switch (view.isClickable()) {
case spinner2.setSelection(0):
startActivity(new Intent(this,To.class));
break;
case spinner2.setSelection(1):
startActivity(new Intent(this,out.class));
default:
break;
}
}
顺便说一句,在您的代码中,您没有初始化您的Spinner ......,您也应该这样做:
Spinner spinner2 = new Spinner();