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

时间:2017-03-06 20:55:59

标签: android arraylist classcastexception

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

1 个答案:

答案 0 :(得分:2)

在你的第一个活动中,myList是一个HashMap数组,你尝试将它转换为String,这是无法完成的。

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

这应该是转换它的正确方法