0

インテントを使用してアクティビティからサブアクティビティにarrayListを送信しています。インテントを送信しているアクティビティでは、arrayListのサイズとアイテムは正しいです。コードは

  intent.putStringArrayListExtra("IMAGE_URLS", imageUrls);

戻るボタンを押して、再度arraylistをsubActivityに送信すると、正しいarrayListが送信されます。しかし、subActivity arraylist には、毎回「new」で作成していますが、「image」には以前のアイテムが含まれています。

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

うまくいきませんでした。理由がわかりませんでした。助けてください。ありがとう

4

1 に答える 1

0

ArrayList返される byはb.getStringArrayList(...)必ずしもbacking ArrayListではなく、コピーである可能性が最も高いです。つまり、返されたリストを変更しても、 に格納されているリストには影響しませんBundle

私はあなたがすることをお勧めします

b.putStringArrayList("IMAGE_URLS", new ArrayList<String>());
于 2012-07-25T08:18:23.543 に答える