1

私はいくつかの投稿を見てきましたが、それでも私のコードを機能させることができません(私は初心者です)..ケーススイッチ付きの2つのボタンでトーストを使用しようとしています..コンパイルするとクラッシュします..1何かアイデアがありますか?

コード:

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

    TextView et = (TextView) findViewById(R.id.txtHeader);

    Button btnAdd = (Button) findViewById(R.id.btnAdd);
    Button btnDis = (Button) findViewById(R.id.btnDisplay);

    btnAdd.setOnClickListener((OnClickListener) this);
    btnDis.setOnClickListener((OnClickListener) this);

}


public void OnClick(View v) {

        switch (v.getId()) {
          case R.id.btnAdd:
        //  Toast msg = Toast.makeText(getBaseContext(), "Torben", Toast.LENGTH_LONG);
        //   msg.show();
            break;

          case R.id.btnDisplay:
        //    Toast msg1 = Toast.makeText(getBaseContext(), "Henriksen", Toast.LENGTH_LONG);
        //       msg1.show();
            break;

           default:

              break;
        }
      }
4

4 に答える 4

1

2つの主な問題があります。

((OnClickListener) this

OnClickListener実際にインターフェースを実装している場合はキャストする必要がないため、クラスが実装されていることを確認してください。

クラスの宣言は次のようになります。

public class MyActivity extends Activity implements OnClickListener

次に OnClick、小文字に変更しoます。

@Override
public void onClick(View v) {
于 2013-01-22T21:06:56.397 に答える
0

いくつかのログ出力が役立ちます!

あなたの活動はOnClickListenerを実装していないというのは大げさな推測ですが、なぜこれをOnClickListenerにキャストするのでしょうか。

于 2013-01-22T21:06:03.807 に答える
0

レイアウトマニフェストをチェックして、ボタンIDが正しく、使用しているのと同じIDが指定されているかどうかを確認します。正しい場合は、LogCat出力で質問を更新してください。

また、複数のボタンのonclickリスナーを実装するコードに間違いがないため、アクティビティがマニフェストで定義されていることを確認してください。

楽しみ!!

于 2013-01-22T21:13:39.587 に答える
0

ボタンリスナーを追加する例:

Button b = ((Button)findViewById(R.id.button_name));
b.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View v) {   
                //do something
            }
        });

ボタンがxmlファイルでID@+ id/button_nameまたは@id/ button_nameで定義されていることを確認してください(それらが一致していることを確認してください)

于 2013-01-22T21:24:19.830 に答える