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");
这应该是正确的转换方式
我正在将 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");
这应该是正确的转换方式