Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么必须在onCreate中初始化对象?_Android - Fatal编程技术网

Android 为什么必须在onCreate中初始化对象?

Android 为什么必须在onCreate中初始化对象?,android,Android,我有以下代码: public class MainActivity extends Activity { TextView number=(TextView)findViewById(R.id.number2); TextView number2=(TextView)findViewById(R.id.number2); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

我有以下代码:

public class MainActivity extends Activity {

TextView number=(TextView)findViewById(R.id.number2);
TextView number2=(TextView)findViewById(R.id.number2);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    number.setText("Text");
    number.setText("Text");
}
接着是更多的代码,但当我运行它时,它崩溃了

之后,我尝试在onCreate()中初始化TextView


它成功了。为什么必须在onCreate()中初始化对象?

onCreate()之前,您的活动不会有
窗口。在初始化窗口之前尝试查找任何视图将导致NPE


此外,尝试在
setContentView()
之前查找视图将返回
null
s,因此返回值对任何事情都没有好处。

onCreate()
之前,您的活动将不会有
窗口。在初始化窗口之前尝试查找任何视图将导致NPE

此外,尝试在
setContentView()
之前查找视图将返回
null
s,因此返回值不适用于任何情况

public class MainActivity extends Activity {

TextView number;
TextView number2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    number=(TextView)findViewById(R.id.number);
    number2=(TextView)findViewById(R.id.number2);
    number.setText("Text");
    number.setText("Text");
}