我将arrayList从我的主类listView发送到另一个类,该类显示列表中各个项目的详细信息。
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent(ListActivity.this, DetailActivity.class);
intent.putExtra("event",myList);
startActivity(intent);
}
现在在DetailActivity.class中,这就是我获取ArrayList的方法。当我打印arrayList时,我可以正确地看到所有值。
Intent i = getIntent();
ArrayList<String> myList = (ArrayList<String>) getIntent().getSerializableExtra("event");
System.out.println(myList);
以下是我尝试检索第一个值并将其存储在变量中的方法。
for (int e=0;e<myList.size();e++)
{
String name = myList.get(0);
System.out.println(name);
}
我得到java.lang.ClassCastException:java.util.HashMap无法强制转换为java.lang.String 我在这做错了什么?
答案 0 :(得分:2)
在你的第一个活动中,myList是一个HashMap数组,你尝试将它转换为String,这是无法完成的。
ArrayList<HashMap<String, String>> myList = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("event");
这应该是转换它的正确方法