2012-03-04 3 views
0

Я создаю кнопку из макета, и она отлично работает (отображается на экране при тестировании). Когда я добавить событие щелчка для этого Button, я всегда получать NullPointerException (вы можете увидеть в коде ниже):Кнопка Android: всегда ошибка при добавлении ClickEvent

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); 
    } 

ответ

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){ 
       } 
      }); 


     } 
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){ 
      } 
     }); 
    }