我错了括号/分号了吗?

时间:2012-01-18 02:55:45

标签: java android button

我收到错误

插入“}”以完成第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);           
                      }
                   }
               }
          }
    }

3 个答案:

答案 0 :(得分:1)

}的调用结束时,您缺少2个结束大括号);和结束setOnClickListener

你必须学习缩进代码。按ctrl + shift + f

可以轻松实现日食

如果左{和右}匹配,则最容易计数。

关于关于该按钮的辅助查询,您可以删除该行(这会消除您的一个大括号。只有在为大量视图分配相同的侦听器时,才能检查视图标识。

您可以在活动中实现OnClickListener,然后只需调用

sound.setOnClickListener(this);

如果是这种情况,那么您可以使用if(v.getId()==R.id.sound)来识别创建事件的视图,但是当您使用匿名类时,无需测试视图。

答案 1 :(得分: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.

答案 2 :(得分:0)

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

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