【问题标题】:Did i misplace brackets/semicolons? [closed]我放错括号/分号了吗? [关闭]
【发布时间】:2012-01-18 02:55:45
【问题描述】:

我遇到了一个错误

插入“}”以完成第 4 行分号的 ClassBody。底部最后一个 } 的错误表示相同的错误。有什么帮助吗? O,我应该在括号中放什么 --->(v==????){ 因为我的按钮显然不是变量。我应该为所有问号插入什么谢谢! =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);           
                      }
                   }
               }
          }
    }

【问题讨论】:

  • 正确缩进将帮助您发现任何括号错误。
  • 你少了一个 );最后(关闭 setOnClickListener)
  • 要回答这个问题,我们不需要编程知识。如果你比较每个标签的开始/结束,你可以很容易地弄清楚(或)正如 wooble 所说,缩进应该已经回答了。
  • @user1148715 它不是让我烦恼的新手,而是复制和粘贴而不了解您在使用什么...这违背了成为程序员的目的...复制/粘贴程序员永远不会成为一个真正的程序员。一个试图理解如何、是什么和为什么的人。
  • 好的!重点,我学习这就是我学习的方式。我不只是跳入事物,我必须看看它们是如何工作的以及它们做什么!现在你为什么不这么说而不是那样叫我离开?你不觉得你的评论有点不尊重吗?

标签: java android button


【解决方案1】:

在对setOnClickListener 的调用结束时,您缺少 2 个右花括号 } 和右花括号 );

你必须学会​​缩进代码。这在 Eclipse 中很容易通过按ctrl+shift+f

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

关于您对按钮的辅助查询,您可以删除该行(这会消除您的花括号之一。检查视图标识仅在您将同一个侦听器分配给许多视图时有用。

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

sound.setOnClickListener(this);

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

【讨论】:

    【解决方案2】:

    您正在创建匿名 (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.
    

    【讨论】:

    • 无需比较参考或 ID,因为您在此方法上附加了单个按钮。只需调用 vibrate() 方法即可。
    • 在令牌“setOnClickListener”上出现语法错误,= 预期在您提供的第一行的此令牌之后:/
    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 2013-09-12
      • 1970-01-01
      • 2014-12-15
      相关资源
      最近更新 更多