2011-10-06 107 views
0

這是我的代碼:安卓應用程序崩潰

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    TextView editTextDay = (TextView)findViewById(R.id.editTextDay); 
    editTextDay.setVisibility(8); //GONE 
    setContentView(R.layout.main); 
} 

無行 「editTextDay.setVisibility(8);」 應用程序不會崩潰。

有什麼想法嗎?

+0

沒有什麼直接關係到你的問題,但你應該使用常量View.GONE而不是8 –

+0

@Laurent」我的辦法同意, 但由於某種原因,eclipse不會識別GONE和VISIBLE,所以我必須使用0和8代替 – Belgi

+0

@Laurent:我認爲它是一樣的,GONE是一個int類型的常量,它的值是8;請參考:http://developer.android.com/reference/android/view/View.html#GONE Belgi:嘗試EditText.GONE; – Houcine

回答

5

在調用方法findViewById()之前,您應該設置內容佈局;這就是爲什麼它返回null。因此,您的代碼將如下工作:

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView editTextDay = (TextView)findViewById(R.id.editTextDay); 
    editTextDay.setVisibility(8); //GONE 

} 
4

移動此行setContentView(R.layout.main);super.onCreate(savedInstanceState); .當前您的textview爲空,因此它引發異常。您首先必須設置視圖,然後使用findViewById方法。

4

將setContentView放在超級調用下。 你不能設置內容視圖之前訪問的觀點:

public void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    TextView editTextDay = (TextView)findViewById(R.id.editTextDay); 
    editTextDay.setVisibility(View.GONE); //GONE 
}