Android 在onCreate内部实例化,而不是在onCreate外部实例化。为什么?

Android 在onCreate内部实例化,而不是在onCreate外部实例化。为什么?,android,instantiation,android-lifecycle,Android,Instantiation,Android Lifecycle,大多数Android代码的示例都像下面的示例2一样完成,为什么这比examaple 1中显示的要好得多 例1 class TestActivity extends Activity() { HelperClass helperClass = new HelperClass(); EditText extiText = (EditText) findViewById(R.id.editText1); @Override protected void o

大多数Android代码的示例都像下面的示例2一样完成,为什么这比examaple 1中显示的要好得多

例1

    class TestActivity extends Activity() {

    HelperClass helperClass = new HelperClass();

    EditText extiText = (EditText) findViewById(R.id.editText1);

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


    }

    }
例2

    class TestActivity extends Activity() {

    HelperClass helperClass;

    EditText editText;

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

    helperClass = new HelperClass();

    editText = (EditText) findViewById(R.id.editText1);

    }

    }
你能行

HelperClass helperClass = new HelperClass(); 
但你做不到

 EditText extiText = (EditText) findViewById(R.id.editText1); 
如例1所示

因为当
onCreate
in调用
setContentView(R.layout.layout)时加载了中的布局文件R.id.editText1
是此版面的一部分,所以在加载版面之前,您无法访问它

阅读你能做的事

HelperClass helperClass = new HelperClass(); 
但你做不到

 EditText extiText = (EditText) findViewById(R.id.editText1); 
如例1所示

因为当
onCreate
in调用
setContentView(R.layout.layout)时加载了中的布局文件R.id.editText1
是此版面的一部分,所以在加载版面之前,您无法访问它


阅读

是的,我忘记了,在加载editText之前必须加载版面文件是的,我忘记了,在加载editText之前必须加载版面文件