0

Eclipseが「OnClick」メソッドの2番目のブラケットについて不平を言っている理由がわかりません...

簡単なことは知っていますが、修正できないようです。

私の活動のコード:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    CallService cs = new CallService();
    TotalTime = TotalTime + (cs.EndTime - cs.StartTime);
    Button button = (Button) findViewById(R.id.button1);

    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
            toast.show();
        } // <-- Why is it complaining about this bracket?!
}
4

4 に答える 4

4

閉じる必要がある開き括弧または括弧ごとに、すべてのステートメントをセミコロンで終了する必要もあります。コンパイラは});追加を望んでいます:

   // You open these, so you need to close them in order
   //                       v                           v
   button.setOnClickListener(new View.OnClickListener() {
       //                          v
       public void onClick(View v) {
           // Perform action on click

           Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
           toast.show();
       }
   //  ^    
   }); // This is what the compiler wants
// ^^
于 2012-07-28T15:33:31.337 に答える
2

あなたはこれを見逃しています:

button.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        // Perform action on click
        Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
        toast.show();
    }
}); // <------------- Close the parenthsesis!!
于 2012-07-28T15:34:00.790 に答える
1

1.間違った場所で を出し とを間違えました。extra bracketbracketa bracesemicolon

- 違う:

         new View.OnClickListener()) // Dont add ")" here.

- 正しい:

         new View.OnClickListener()

- 逃した:

           } );   

2. この部分をプログラム内の自分の部分に置き換えれば、確実に機能します...

button.setOnClickListener(new View.OnClickListener() {
           public void onClick(View v) {
               // Perform action on click

                   Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
                   toast.show();
           }

       } ); 

3.さらに簡単にするために、あなたの作業コード全体の下に投稿しています....

///////////// 修正されたコードを含む onCreate() 全体///////////////

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        CallService cs= new CallService();

       TotalTime = TotalTime + (cs.EndTime-cs.StartTime);

       Button button = (Button) findViewById(R.id.button1);

       button.setOnClickListener(new View.OnClickListener() {
           public void onClick(View v) {
               // Perform action on click

                   Toast toast = Toast.makeText(getApplicationContext(), ""+TotalTime, Toast.LENGTH_SHORT);
                   toast.show();
           }

       } );   

    }
于 2012-07-28T16:26:03.773 に答える
1

eclipse などの IDE にコードを配置することをお勧めします。これは通常、コンパイル エラーのポイントを反映するため、そのようなエラーを探すために余分な労力を費やす必要はありません。コードをフォーマットしたい場合は、Eclipseで次の手順を実行してください

カーソルがコード領域にある間

ctrl + A を押します // すべてのコードを選択します

次に ctrl + shift + F を押します // これによりコードがフォーマットされます

これで、括弧の開始点と終了点を簡単に見つけることができ、コードが適切にフォーマットされたように見えます。

于 2012-07-28T17:27:30.290 に答える