2012-01-25 46 views
0

我有這樣的:的Android的onCreate ClassCastException異常

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    LinearLayout layout = (LinearLayout) View.inflate(this, R.layout.main, null); 
    setContentView(layout); 
    s = (Spinner) findViewById(R.id.spinner1); 

它拋出一個ClassCastException爲什麼呢? 如果我做setContentView(R.layout.main)一切順利。但我需要在一個變量的佈局,因爲我需要它使用廣告庫。有沒有一種方法來擴充XML並在變量中放置佈局?

謝謝

+0

是'main.xml'的根元素,實際上是'LinearLayout'? – Vladimir

+0

是這是引發異常的線是代碼的最後一行 – seipey

回答

1

哪一行拋出ClassCastException?

也可以使用setContentView(R.layout.main);然後仍然使用id調用的普通查找視圖來獲取對根佈局的引用。

LinearLayout layout = (LinearLayout)findViewById(R.id.yourParentId); 

只要這來自你所謂的setContentView(),你應該得到返還到您的佈局對象的引用,你可以按照自己的喜好使用後。

+0

多數民衆贊成我正在尋找感謝,錯誤仍然存​​在,但我認爲我有somethign錯了這個文件,因爲我已經把這與setcontentview和我它會一直存在,如果我發現錯誤,我會告訴你,謝謝大家。 – seipey

+0

我解決了這個問題,不知道它是什麼。只需要刪除並重寫這段代碼,一切都很順利。 – seipey

+0

偶爾你會發現這樣的奇怪的錯誤。嘗試使用eclipse清理您的項目是值得的。在您的軟件包管理器窗口中,右鍵單擊您的項目並選擇「清理選定的項目」,這將對您的項目進行一次刷新,我發現它有時會修復奇怪的錯誤。 – FoamyGuy

1

在什麼行會拋出異常?也許佈局的根視圖不是真的LinearLayout。或者,也許R.id.spinner1不是Spinner