在onCreate内部实例化与在onCreate外部实例化的比较.为什么



大多数Android代码示例都是像下面的示例2那样完成的,为什么它比示例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是这个布局的一部分,所以在布局被加载之前你不能访问它。

了解onCreate()

最新更新