如何在活动之间传输ArrayList?

时间:2015-02-13 15:53:59

标签: android android-intent arraylist parcelable

我试图在活动之间转移ArrayList,但我尝试过的任何内容都无效。
这是我最好的镜头,但这也没有用。

我在这里调用外部动作:

getComics getComicInfo = new getComics(charName, pageNum);
getComicInfo.execute();
getIntentData()

这里我试图放置数据,但问题在于这是一个外部动作,所以我无法通过激活。

    if(counter == comicInfoObject.length()){

        Log.v("check arr length =>" , Integer.toString(comicList.size()));
        Intent i = new Intent();
        i.putExtra("comicArrayList", (ArrayList<Comics>)comicList);
        }

这里我要回复数据,但它并没有进入&#34;如果&#34;

public void getIntentData(){
        Intent i = getIntent();
        if(i != null && i.hasExtra("comicArrayList")){
            comicList2 = i.getParcelableExtra("comicArrayList");
            int size = comicList2.size();
        }
    }

第一个代码是我调用使用api的外部类,在底行创建arrayList      第二个代码在外部类中,我尝试使用putExtra来传递arrayList      第三个代码是我在getIntentData()之后检索数据的地方。

2 个答案:

答案 0 :(得分:0)

发件人Activity

打包
intent.putParcelableArrayListExtra(<KEY>, ArrayList<Comics extends Parcelable> list);
startActivity(intent);

在接收器Activity

处提取
getIntent().getParcelableArrayListExtra(<KEY>);

答案 1 :(得分:0)

您需要创建一个实现Parcelable的漫画类,然后使用put ParcelableArrayListExtra传递arraylist。

以下是Pass data between activities实现Parcelable

的示例链接

但是要小心,如果你的数组列表太大,你可能会得到意图异常,在这种情况下,你可以考虑一个static reference来存储你的数组列表。