java.lang.ClassCastException:尝试检索 arrayList 项目时,无法将 java.util.HashMap 强制转换为 java.lang.String

java.lang.ClassCastException: java.util.HashMap cannot be cast to java.lang.String when trying to retrieve arrayList items

我正在将 arrayList 从我的主 class(即 listView)发送到另一个 class,它显示列表中各个项目的详细信息。

 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 我在这里做错了什么?

在您的第一个 activity 中,myList 是 HashMap 的数组,您尝试将其转换为无法完成的字符串。

 ArrayList<HashMap<String, String>> myList = (ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("event");

这应该是正确的转换方式