2013-06-20 64 views
0

大部分Android代碼的每個例子都是像下面的例子2那樣完成的,爲什麼它比示例1中顯示的好得多?在onCreate內部與其外部實例化相比。爲什麼?

例如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); 

    } 

    } 

回答

3

你可以做

HelperClass helperClass = new HelperClass(); 

但你不能做

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

像示例1

由於加載佈局文件時onCreate在呼籲setContentView(R.layout.layout);因爲R.id.editText1這是佈局的一部分,直到佈局被加載,你還沒有接觸到它。

閱讀onCreate()

+0

是的,我忘了這一點,該佈局文件必須在EDITTEXT之前加載的事實被加載 – Kevik

+0

是的,你是對的.. –

相關問題