我正在尝试将Activity中的LinkedList发送给另一个。 在我的第一个活动中:
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,代码中绝对不存在!O.O)
可能是什么错误?
答案 0 :(得分:2)
您确定要访问的意图是您创建的意图吗?尝试调试意图,例如输出:
getIntent().getSerializableExtra("codaRedditi").getClass()
或对象本身:
getIntent().getSerializableExtra("codaRedditi")
你收到了什么?
您还确定使用正确LinkedList
进行演员表演吗?查看导入,它是否说明:java.util.LinkedList
答案 1 :(得分:0)
您确定intent
是LinkedList
的实例吗?
尝试:
codaRedditi=new LinkedList((List)(getIntent().getSerializableExtra("codaRedditi")));
答案 2 :(得分: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”的包前缀。也许这会导致问题。