Android:ArrayList未被清除

时间:2012-07-25 08:16:20

标签: java android arraylist

我使用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();
              }
  }
它没有用。我没找到原因。请帮忙。谢谢

1 个答案:

答案 0 :(得分:0)

ArrayList返回的b.getStringArrayList(...)不一定是支持 ArrayList,它很可能是副本。换句话说,对返回列表的修改不会影响Bundle中存储的列表。

我建议你这样做

b.putStringArrayList("IMAGE_URLS", new ArrayList<String>());