2012-07-25 87 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>());