2011-12-22 28 views
0

對不起,這是一個愚蠢的問題!爲什麼在調用setContentView之前無法更改按鈕的屬性?

我在Android上玩了幾件事,我正在試驗在xml文件中指定的運行時更改元素。

Button buttonSetup = (Button) findViewById(R.id.buttonSetup); 
buttonSetup.setTextSize(40); 

不過,我注意到,這個崩潰的應用程序,如果你做出改變之前的 -

setContentView(R.layout.main); 

,這是什麼原因呢? (對不起,如果我錯過了一些明顯的東西!我認爲我的大腦已經進入冬眠冬季了!)

我以爲最好的做法是在之前更改元素setContentView,這樣如果你改變了很多元素(例如半打左右屬性超過六個元素)對於屏幕上的事物變化的用戶來說並不明顯。

謝謝!

回答

3

簡單的答案:

你的XML佈局是通過調用setContentView膨脹。 在尚未充值之前,活動並不瞭解XML。

您可以手動充氣視圖與此代碼:

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
LinearLayout myLayout = (LinearLayout) inflater.inflate(R.layout.nameOfXML, null); 

後來觀與

setContentView(myLayout); 
+0

好設置到這個充氣佈局...我想,因爲按鈕都爲他們的訪問自己的事情(R.layout.buttonSetup)似乎與佈局(R.layout.main)無關,他們可以完全獨立編輯... – Eilidh 2011-12-22 16:21:30

+0

我有點困惑,對不起:) – Eilidh 2011-12-22 16:21:39

+0

沒問題,它對我來說也不容易理解。如果你膨脹的視圖比你可以改變你想要的所有東西,而不是像上面顯示的那樣調用setContentView – Thommy 2011-12-22 16:24:55

相關問題