0

わからないブラケットエラーが発生します。

ボタンが押された後、コードには乱数が含まれている必要があり、その下でカウントアップするカウンターが必要です。私の最終的な目標は、数字が同じであなたが勝つかどうかをチェックする勝利条件を持つことです。しかし、これらのブラケットを正しく揃えるには助けが必要です。Android用のEclipseでこれを行うと、どんな助けも素晴らしいでしょうありがとう!

package com.viralgamez.gastime;

import java.util.Random;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class NewGame<Stopwatch> extends Activity {

    private TextView displayRandInt;
    private Button updateRandInt;
    final int MSG_START_TIMER = 0;
    final int MSG_STOP_TIMER = 1;
    final int MSG_UPDATE_TIMER = 2;

    private static final Random rand = new Random();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newgame);

        /* Setup your Activity */

        // Find the views (their id's should be specified in the XML layout file)
        displayRandInt = (TextView) findViewById(R.id.displayRandInt);
        updateRandInt = (Button) findViewById(R.id.updateRandInt);

        // Give the Button an onClickListener
        updateRandInt.setOnClickListener(new android.view.View.OnClickListener() {
            public void onClick(View v) {
                int randInt = rand.nextInt(100)+1;
                displayRandInt.setText(String.valueOf(randInt));
            }

            public void onClick2(View v) {
                if(status == false)
                {       
                    btnStart.setText("Stop");
                    status = true;        
                    new Thread(new Runnable()
                    { run(){
                          for(int i=0; i < 500; i++)
                          {
                              runOnUiThread(new Runnable()
                                    {
                                        @Override
                                        public void run()
                                        {
                                            txtCounter.setText(String.valueOf(i));
                                        }
                                    });
                               Thread.sleep(1000);
                          }}
                    }).start();

                }
                else if (status == true)
                {

                    btnStart.setText("Start");
                    status = false;
                    initCouner();
        });
4

4 に答える 4

1

最初にhttp://jsbeautifier.org/からコードを実行しました (JavaScript の場合ですが、Java は問題なくインデントされます)。Control++を使用して Eclipse でこれを行うことができShiftますF。新しいコード ブロックを追加するたびにこれを行うと、コードは常に整然としたものになります。

そこから、どのブラケットが一致するかを簡単に確認できます。まず、run()実際のメソッド シグネチャにすることが重要です。それとは別に、else if終了ブラケットに問題があります。

自動インデンターからコードを音訳し、不足している括弧を下部に追加しました。注意すべきいくつかの場所 (つまり、メソッド シグネチャと角かっこの欠落) についてコメントしました。

package com.viralgamez.gastime;

import java.util.Random;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class NewGame<Stopwatch> extends Activity {

    private TextView displayRandInt;
    private Button updateRandInt;
    final int MSG_START_TIMER = 0;
    final int MSG_STOP_TIMER = 1;
    final int MSG_UPDATE_TIMER = 2;

    private static final Random rand = new Random();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.newgame);

        /* Setup your Activity */

        // Find the views (their id's should be specified in the XML layout file)
        displayRandInt = (TextView) findViewById(R.id.displayRandInt);
        updateRandInt = (Button) findViewById(R.id.updateRandInt);

        // Give the Button an onClickListener
        updateRandInt.setOnClickListener(new android.view.View.OnClickListener() {
            public void onClick(View v) {
                int randInt = rand.nextInt(100) + 1;
                displayRandInt.setText(String.valueOf(randInt));
            }

            public void onClick2(View v) {
                if (status == false) {
                    btnStart.setText("Stop");
                    status = true;
                    new Thread(new Runnable() {
                        // run() { // This needs to be changed to an actual method signature
                        public void run() {
                            for (int i = 0; i < 500; i++) {
                                runOnUiThread(new Runnable() {
                                    @Override
                                    public void run() {
                                        txtCounter.setText(String.valueOf(i));
                                    }
                                });
                                Thread.sleep(1000);
                            }
                        }
                    }).start();

                // } else if (status == true) { // Change this to just }else{
                } else {

                    btnStart.setText("Start");
                    status = false;
                    initCouner();
                // }); // This needs to be changed to the following:
                }
            }
        });
    }
}
于 2012-12-18T19:37:32.577 に答える
0

前に述べたように、閉じ括弧がなく、閉じが適切ではありません);。これは以下で修正されています。Eclipseを使用している場合、将来これを簡単に修正するには、ページの下部に閉じ括弧を追加して、その横をクリックするだけです。Eclipseは、対応する開き角かっこと閉じかっこを自動的に強調表示します。これを行うと、角かっことかっこを正しく揃えたり、角かっこが多すぎるか、別の角かっこを追加する必要があるかどうかを判断できます。

            //starting from the last else if statement
            else if (status == true)
            {

                btnStart.setText("Start");
                status = false;
                initCouner();
            }
        }
    });
  }
}
于 2012-12-18T19:34:01.617 に答える
0

else ifの末尾の括弧と、のもう 1 つの閉じ括弧が欠落しているようですonClick2(Sam は私の前に 2 番目のものをキャッチしました)。

于 2012-12-18T19:24:02.813 に答える
0

これを試して:

updateRandInt.setOnClickListener(new android.view.View.OnClickListener() {
    public void onClick(View v) {
    }

    public void onClick2(View v) {
        if(status == false)
        {       
        }
        else if (status == true)
        {
        } // Not Here );
    }
}); // Here

そして、この後にいくつかの閉じ括弧がありません。

于 2012-12-18T19:26:35.407 に答える