我正在尝试两个使用两个按钮启动两个不同的活动和点击监听器我收到以下错误此行的多个标记 - 语法错误,插入“}”完成 ClassBody - 语法错误,插入“;”去完成 FieldDeclaration
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.safaricom);
Button button1 = (Button)findViewById(R.id.button1);
Button button2 = (Button)findViewById(R.id.button2);
button1.setOnClickListener(buttonClickListener);
button2.setOnClickListener(buttonClickListener);
}
private OnClickListener buttonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.button1:
Intent intent = new Intent(this, Second.class);
this.startActivity(intent);
break;
case R.id.button2:
Intent intent = new Intent(this, SignUp.class);
this.startActivity(intent);
break;
}
}
}
答案 0 :(得分:6)
最后缺少;
。
private OnClickListener buttonClickListener = new View.OnClickListener() {
...
};
答案 1 :(得分:0)
您应该更改onClick方法以避免重复的本地变量
private OnClickListener buttonClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = null;
switch(v.getId()){
case R.id.button1:
intent = new Intent(this, Second.class);
break;
case R.id.button2:
intent = new Intent(this, SignUp.class);
break;
}
if (intent != null)
this.startActivity(intent);
}
};
如果您声明一个变量 INSIDE 一个开关,那么您声明它的 case 无关紧要,它始终位于开关内。这就是当您不想执行其他代码行时必须使用 break; 的原因。 你是否在开关内。