-5

私は Java 演習の本を読んでいて、この構文エラーに行き詰まりました。onSetClickListener 構文エラーを検索しましたが、質問が重複しているとは思いません。Eclipseは、「トークン「setOnClickListener」の構文エラー、このトークンの後に識別子が必要です」と言います。ご協力いただきありがとうございます!

package fifth.example.eventhandling;

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

public class MainActivity extends Activity implements OnClickListener{
    Button button = (Button)findViewById(R.id.button1);
    button.setOnClickListener(this);  <<ERROR HERE

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onClick(View arg0) {
        TextView text = (TextView)findViewById(R.id.textmessage);
        text.setText("BUTTON HAS BEEN CLICKED. EVENT PROCESSED.");

    }

}
4

3 に答える 3

3

1 つの問題は次のとおりです。コード内にあるボタン関連のコードは、内側onCreate()と後にある必要があります。setContentView...

    Button button = (Button)findViewById(R.id.button1);
    button.setOnClickListener(this);  <<ERROR HERE

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

次のようにする必要があります。

public class MainActivity extends Activity implements OnClickListener{ Button ボタン;// ボタンを宣言する

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button button = (Button)findViewById(R.id.button1);
       button.setOnClickListener(this);  <<ERROR HERE

    }

}

于 2013-01-22T04:49:57.040 に答える
2

現在、 Activity のレイアウトを設定する前にボタンを初期化しようとしています。アクティビティの onCreate 内でボタンの初期化を setContentView asの後に移動します。

public class MainActivity extends Activity implements OnClickListener{
    Button button ; //<<< declare  button here

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

       button = (Button)findViewById(R.id.button1);  //<<< initilze here
       button.setOnClickListener(this);   
    }
于 2013-01-22T04:53:12.003 に答える
0

あなたのコードは次のようになります。

public class MainActivity extends Activity implements OnClickListener{


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

Button button = (Button)findViewById(R.id.button1);
button.setOnClickListener(this);  <<ERROR HERE
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

@Override
public void onClick(View arg0) {
    TextView text = (TextView)findViewById(R.id.textmessage);
    text.setText("BUTTON HAS BEEN CLICKED. EVENT PROCESSED.");

}
于 2013-01-22T04:55:42.610 に答える