-1

我正在尝试两个使用两个按钮和点击监听器启动两个不同的活动我收到以下错误此行的多个标记 - 语法错误,插入“}”以完成 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;

          }

     }     
}
4

2 回答 2

6

;最后缺少A。

private OnClickListener buttonClickListener = new View.OnClickListener() {

    ...

};
于 2012-09-03T20:47:08.927 回答
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);
     }     
};

如果您在 switch 内声明一个变量,则无论在哪种情况下声明它都无关紧要,它始终在switch内。这就是为什么你必须使用break;当您不想执行其他代码行时。您是否在开关内。

于 2012-09-04T00:09:37.587 回答