0

私は最初のアプリを書いています。プログラミングは初めてです...このプログラムは進行中ですが、コンパイルさえできれば、これまでの様子を見てみたいです! 角かっこに問題があると思います。1 つのエラーを修正するたびに、別のエラーが別の場所に表示されます...欠落している角かっこを簡単に見つける方法はありますか? ありがとう!

package com.Jenko.votingapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.content.Intent;

public class MainActivity extends Activity {

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

        Button createNew = (Button)findViewById(R.id.newPoll);
        createNew.setOnClickListener(new View.OnClickListener() {
            public void onClick (View view) {
                startActivityForResult(new Intent("com.Jenko.votingapp.CREATENEWPOLL"), 1);
                finish();
            }

            public void onActivityResult(int requestCode, int resultCode, Intent data) {
              if (requestCode ==1) {
                  if (resultCode == RESULT_OK) {
                      //something will eventually happen here...
                  }

                  Button seePrevious = (Button)findViewById(R.id.prevPoll);
                  seePrevious.setOnClickListener(new View.OnClickListener() {
                      public void onClick (View view) {
                          startActivityForResult(new Intent("com.Jenko.votingapp.SEEPREVIOUSPOLL"), 2);
                          finish();
                      }
                  });
              }
4

4 に答える 4

2

IDE を持っていない場合は、開始ブラケット、中括弧、または括弧を入力した瞬間にすぐに終了ブラケット、中括弧、または括弧を追加することをお勧めします。両方を取得したら、残りを入力できます。その方法で孤児を追加することは決してありません。

一貫したスタイルとコードのレイアウトがここで役立つと言っているすべてのコメントを支持します。

于 2012-09-06T19:34:00.930 に答える
2

適切にインデントすることは非常に重要です。インデントが正しければ、欠落しているブラケットは簡単に目立ちます。ここでは、括弧/括弧がインデントされて固定されています。

package com.Jenko.votingapp;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import android.content.Intent;

public class MainActivity extends Activity {

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

        Button createNew = (Button)findViewById( R.id.newPoll );
        createNew.setOnClickListener( new View.OnClickListener() {

            public void onClick( View view ) {
                startActivityForResult( new Intent( "com.Jenko.votingapp.CREATENEWPOLL" ), 1 );
                finish();
            }
        });
    }

    public void onActivityResult( int requestCode, int resultCode, Intent data ) {
        if( requestCode == 1 ) {
            if( resultCode == RESULT_OK ) {// something will eventually happen here...}
                Button seePrevious = (Button)findViewById( R.id.prevPoll );
                seePrevious.setOnClickListener( new View.OnClickListener() {

                    public void onClick( View view ) {
                        startActivityForResult( new Intent( "com.Jenko.votingapp.SEEPREVIOUSPOLL" ), 2 );
                        finish();
                    }
                });
            }
        }
    }
}
于 2012-09-06T19:31:30.680 に答える
1

IDE (Eclipse、IntelliJ など) を使用します。あなたには重すぎますか?emacs や vim エディタはどうですか? どちらもブラケットマッチング機能を備えています。プログラミング エディターは、1 ダースほどあります。1 つ選んで学習し、定期的に予定されているプログラミングに取り掛かります。

于 2012-09-06T19:27:04.403 に答える
0

ほとんどのコーディング標準では、ステートメントまたは関数の直後に開始ブラケットを配置し、同様に終了ブラケットに独自の行を指定します。

    function() {
        do stuff here
    }

または、ステートメントまたは関数の直後に、他にそのようなものがない場合

    function()
    {
        do stuff here
    }

これにより、ブラケットの開閉を簡単に見つけることができます。これらの基準を満たすためにリファクタリングされた上記のコードは次のようになります

    public class MainActivity extends Activity { <-- missing closing bracket

        @Override
        public void onCreate(Bundle savedInstanceState) { <-- missing closing bracket
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            Button createNew = (Button)findViewById(R.id.newPoll);
            createNew.setOnClickListener(new View.OnClickListener() { <-- missing closing bracket
                public void onClick (View view) {
                    startActivityForResult(new Intent("com.Jenko.votingapp.CREATENEWPOLL"), 1);
                    finish();
                } //end onClick

                public void onActivityResult(int requestCode, int resultCode, Intent data) { <-- missing closing bracket
                    if (requestCode ==1) {
                        if (resultCode == RESULT_OK) {
                            //something will eventually happen here...
                        }//end if


                        Button seePrevious = (Button)findViewById(R.id.prevPoll);
                        seePrevious.setOnClickListener(new View.OnClickListener() {
                            public void onClick (View view) {
                                startActivityForResult(new Intent("com.Jenko.votingapp.SEEPREVIOUSPOLL"), 2);
                                finish();
                            } //end onClick

                        }); //end View.OnClickListener
                    } //end if

次の閉じ括弧がありません。

MainActivity
public void onCreate(Bundle savedInstanceState)
public void onActivityResult
createNew.setOnClickListener

すでに述べたように、適切なコードのインデントは大いに役立ちます

于 2012-09-06T19:46:54.337 に答える