2012-01-18 62 views
-4

我得到一个错误我错过了括号/分号吗?

插入“}”来完成第四行的分号的ClassBody。并在底部的最后一个错误说,同样的错误。任何帮助? O和我应该把什么放在括号--->(v == ????){Cuz显然我的按钮不是一个变量。我应该为所有问号插入谢谢! = P

public class AndroidVibrator extends Activity 
{ 
     /** Called when the activity is first created. */ 
     private Button sound; 
     private Vibrator sound1; 
     @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main2); 
      Button sound = (Button)findViewById(R.id.sound); 
      sound.setOnClickListener(new View.OnClickListener() 
       { 
       Vibrator vibrator = (Vibrator) 
          getSystemService(Context.VIBRATOR_SERVICE);  
       public void onClick(View v) 
        { 
        if(v==????) 
         { 
         vibrator.vibrate(300000);   
         } 
        } 
       } 
      } 
    } 
+2

缩进正确将帮助您发现任何括号错误。 – geoffspear 2012-01-18 02:58:48

+0

你错过了a);最后(关闭setOnClickListener) – 2012-01-18 02:59:05

+1

要回答这个问题,我们不需要编程知识。如果你比较每个标签的开始/结束,你可以很容易地找出(或)正如wooble所说,缩进应该已经回答了。 – kosa 2012-01-18 03:00:53

回答

1

你缺少2右大括号},截止);在调用setOnClickListener结束。

您必须学会缩进代码。这是按ctrl + shift + f

在Eclipse中轻松这是最简单的,如果离开了{的右}的比赛来算。

关于你提到的有关按钮二次查询,您可以删除该行(这消除了你的花括号中的一个。检查视图身份,如果您分配相同的监听器,大量的意见是唯一有用的。

你可以在您的活动实现OnClickListener然后只需拨打

sound.setOnClickListener(this);

如果是这样,那么你可以使用if(v.getId()==R.id.sound)确定哪些视图中创建的事件,但使用匿名类时,你这里有没有必要测试的情况下视图

0

对于第二部分,请使用switch case语句。它允许更容易地添加更多按钮。

public void onClick(View v) { 
     switch (v.getId()){ 
     case R.id.sound: 
      vibrator.vibrate(300000); 
     break;  
    }    
} 
1

您正在创建匿名(learn how to create anonymous class)内部类来处理点击操作。

sound.setOnClickListener(new View.OnClickListener() 
    { //start 


     @Override 
     public void onClick(View v) 
     { 
      Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 
      vibrator.vibrate(300000); 
     } 

    } //end anonymous class 
    ); //end setOnClickListener method. 
+0

我发表了什么声明? – user1148715 2012-01-18 03:27:22

+0

无需比较参考或ID,因为您有单个按钮附加到此方法。只需调用vibrate()方法即可。 – adatapost 2012-01-18 03:30:32

+0

获得令牌“setOnClickListener”的语法错误,=在第一行提供的此令牌之后预期:/ – user1148715 2012-01-18 03:34:25