2012-07-25 90 views
0

我从活动发送的ArrayList使用intent.In活动从那里我发送意图,大小&项目的ArrayList是正确的subacitvity。代码是安卓:ArrayList中无法清

intent.putStringArrayListExtra("IMAGE_URLS", imageUrls); 

当我打回按钮,并再次发送arraylist到subAcitivity它发送正确的arrayList。但在subActivity arraylist“图片”包含以前的项目,虽然我每次创建它与“新”。

@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(); 
       } 
    } 

它没有工作。我没有找到原因。请help.Thanks

回答

0

ArrayList通过b.getStringArrayList(...)返回不一定是后盾ArrayList,这是最有可能的一个副本。换句话说,对返回列表的修改不会影响存储在Bundle中的列表。

我建议你做

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