2012-01-18 24 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