0

レイアウトからボタンを作成すると、正常に動作します(テスト時に画面に表示されます)。この のクリック イベントを追加すると、Button常にNullPointerException次のメッセージが表示されます (以下のコードで確認できます)。

   Button b1;
   int REQUEST_CODE =1;

   @Override
   public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

        b1 = (Button) findViewById(R.id.web_button);        
        b1.setOnClickListener(new OnClickListener() { //ERROR THIS LINE

            public void onClick(View arg0){}
        }); 
        setContentView(R.layout.intent);
   }
4

2 に答える 2

3

setContentView最初に - 使用する前に-findViewByIdそうしないと、ボタンを検索する場所がわかりません。

この順序を使用します。

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);

        setContentView(R.layout.intent);

        b1 = (Button) findViewById(R.id.web_button);        
        b1.setOnClickListener(new OnClickListener() { //ERROR THIS LINE
            public void onClick(View arg0){
            }
        }); 
    }
于 2012-03-04T17:15:29.570 に答える
2

Buttonコンテンツ ビューを設定する前に を検索しています。これを行う必要があります:

 @Override
        public void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);

            setContentView(R.layout.intent);
            b1 = (Button) findViewById(R.id.web_button);        
            b1.setOnClickListener(new OnClickListener() { //ERROR THIS LINE
                public void onClick(View arg0){
                }
            }); 


        }
于 2012-03-04T17:15:48.843 に答える