0

次のコードセグメントでは、ビルド時にOnClickListenerをボタンに追加するときに壊れ続けます。

package xxx.xxx.xxx;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.AdapterView.OnItemLongClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ListView;

public class TeaActivity extends Activity {

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    Button AddItem = (Button)findViewById(R.id.button1); 

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    AddItem.setOnClickListener(AddButtonHandler);
    }
    View.OnClickListener AddButtonHandler = new View.OnClickListener() {
      public void onClick(View v) {
              // it was the first button

      }
    };

デバッグ時に、setOnClickListener()呼び出しでコードが壊れます。理由がわからない

4

2 に答える 2

3

anealによると、setContentViewの前にfindViewByIdを呼び出すことはできません。これは、xmlレイアウトがまだロードされていないため、findViewByIdがnullを返すためです。次に、nullオブジェクトでsetOnClickListenerを呼び出すために、nullポインタ例外が発生する可能性があります。

于 2012-06-24T23:33:30.307 に答える
2

これに変更します

AddItem.setOnClickListener(new View.OnClickListener {
   public void onClick(View v) {
     TODO
   }
});
于 2012-06-24T23:29:46.737 に答える