我使用intent.In从活动发送arrayList到subacitvity。我发送意图的活动,大小& arrayList的项是正确的。代码是
intent.putStringArrayListExtra("IMAGE_URLS", imageUrls);
当我点击后退按钮并再次将arraylist发送到subAcitivity时,它会发送正确的arrayList。但是在subActivity中,arraylist“ image ”包含以前的项目,虽然我每次都使用“new”创建它。
@Override
protected void onResume() {
super.onResume();
load_image();
}
private void load_image() {
**image = new ArrayList<String>();**
Intent intent = getIntent();
Bundle b = intent.getExtras();
image = b.getStringArrayList("IMAGE_URLS");
for (int i = 0; i < image.size(); i++) {
infoLog("URL--->>"+image.get(i));
}
}
我还尝试在后退按钮中 image.clear(); 。
OnClickListener backButtonListener = new OnClickListener() {
@Override
public void onClick(View v) {
image.clear();
finish();
}
}
它没有用。我没找到原因。请帮忙。谢谢
答案 0 :(得分:0)
ArrayList
返回的b.getStringArrayList(...)
不一定是支持 ArrayList
,它很可能是副本。换句话说,对返回列表的修改不会影响Bundle
中存储的列表。
我建议你这样做
b.putStringArrayList("IMAGE_URLS", new ArrayList<String>());