我写了一个有两个按钮的布局,然后主方法如下:
public class MainActivity extends ActionBarActivity {
private Button button1 = (Button) findViewById(R.id.button);
private Button button2 = (Button) findViewById(R.id.button2);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
这样写就报错了。java.lang.NullPointerException: Attempt to invoke virtual method “”android.view.View android.view.Window.findViewById(int)”” on a null object reference
但是我改成这样之后又可以运行了,,现在还是有点不太清楚为什么要这样改。
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
Button button1 = (Button) findViewById(R.id.button);
Button button2 = (Button) findViewById(R.id.button2);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
我觉得第一种写法更好啊,,但是怎么会报错呢?求大家指教。能解读下这个异常更好