0

我收到了我无法弄清楚的括号错误。

按下按钮后,代码应该有一个随机数,然后我应该有一个计数器,在它下面计数。我最终的目标是有一个获胜条件,检查数字是否相同并且你获胜。但只需要帮助使这些括号对齐即可。在 Eclipse for android 中执行此操作,任何帮助都会很棒,谢谢!

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

您似乎缺少 . 末尾的括号else if,以及另一个右括号onClick2(Sam 在我之前抓住了第二个)

于 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 回答
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 回答