2012-10-07 44 views
4

我想從一個活動發送一個LinkedList到另一個。 在第一個活動,我有:從Serializable向下鏈接到LinkedList <Class>

LinkedList<Class> codaActivity; 
/* Lots of code here... */ 
Intent intent = new Intent(this, codaActivity.remove()); 
intent.putExtra("codaRedditi", codaActivity); // this is putExtra(String, Serializable) 
startActivity(intent); 

在第二個,而不是:

// The following throws a ClassCastException 
codaRedditi=(LinkedList<Class>) (getIntent().getSerializableExtra("codaRedditi")); 

當我嘗試運行我的應用程序中,DVM拋出造成的代碼一個ClassCastException(和談論一個ArrayList,絕對不存在於代碼中!OO)

可能是什麼錯誤?

+0

所以,你說'codeActivity'的類型是'LinkedList '?請將'codeActivity'的聲明添加到您的問題中。 –

+0

對不起,現在我要編輯我的問題;) – user1726800

回答

0

您確定intentLinkedList的實例嗎?

嘗試:

codaRedditi=new LinkedList((List)(getIntent().getSerializableExtra("codaRedditi"))); 
+0

不,Intent不是LinkedList,但Intent.getSerializedExtra()返回一個Serializable,LinkedList是。 我試過了你的代碼,但是Eclipse提醒我LinkedList沒有帶List參數的構造函數... – user1726800

+0

@ user1726800但是[[]](http://docs.oracle.com/javase/6/docs /api/java/util/LinkedList.html#LinkedList(java.util.Collection)!您是否確定您在演繹中分別使用java.util.LinkedList'作爲參數? –

+0

http://developer.android .com/reference/java/util/LinkedList.html#LinkedList%28 是的,在這裏,我只能看到一個emty構造函數和另一個需要一個Collection的列表,不是List ..! – user1726800

2

你確定你正在訪問的目的是您所創建的一個?嘗試用輸出到調試的意圖,例如:

getIntent().getSerializableExtra("codaRedditi").getClass()

或對象本身:

getIntent().getSerializableExtra("codaRedditi")

你怎麼收?

你是否確定你正在使用正確的LinkedList你在哪裏演員?考慮進口,做它的狀態:java.util.LinkedList

+0

謝謝,我會試試這個晚上,我會讓你知道;) – user1726800

0

從文檔:

public Intent putExtra (String name, Serializable value) 

Since: API Level 1 
Add extended data to the intent. The name must include a package prefix, for example the app com.android.contacts would use names like "com.android.contacts.ShowAll". 

Parameters 
name The name of the extra data, with package prefix. 
value The Serializable data value. 

它說,在「名稱」字段」應該有包前綴,如「com.blah.something」。也許這是造成這個問題的原因。

+0

我試着編輯這兩個字符串,但沒有什麼不同:S – user1726800