【发布时间】:2015-12-04 22:43:57
【问题描述】:
在问这里之前,我首先搜索如何将一个数组列表从一个意图传递给另一个。感谢在 SO 上发表的一篇文章,我想我找到了一种方法。
问题是,当我尝试显示目标活动的数组列表中的元素时,我只得到了我最初在离开活动中拥有的众多元素之一。
明确地说,这是我第一次活动中的代码:
HashMap map = new HashMap<String,String>();
map.put("key1","value1");
map.put("key2","value2");
arrayList.add(map);
Log.d("arrayList", String.valueOf(arrayList));
在 logcat 中,我有预期的元素:
D/arrayList:: [{"key1":"value1"},{"key2","value2"}
然后,我用这个来追求:
Intent intent = new Intent(MyFirstActivity.this,MySecondActivity.class);
intent.putExtra("arrayList",arrayList);
现在,这是我的第二个活动应该是接收到的元素。
Intent intent = getIntent();
arrayList = (ArrayList<HashMap<String,String>>) getIntent().getSerializableExtra("arrayList");
Log.d("arraySecondActivity", String.valueOf(arrayList));
在logcat中,只有我的第二项是显示:
D/arraySecondActivity: [{key2=value2}]
我不知道为什么……有人可能知道吗?
谢谢!
【问题讨论】:
-
确保您的项目在通过意图传递之前已添加到您的数组列表中
-
怎么样?我的意思是,为什么我的第二个可以,而第一个不行?
标签: android android-intent arraylist hashmap