ArrayList在传递给下一个活动后包含null

时间:2014-10-11 12:38:55

标签: android android-activity arraylist bundle

我使用ArrayList存储一些数据,然后通过.putStringArrayList()方法将其传递给下一个实际需要的活动。我在我的项目中的几个地方使用相同的过程,它的工作非常好。但是,在这种特殊情况下,当我在接收活动中提取它时,它包含null。可以肯定的是,我甚至在发送之前显示了列表,它确实显示了我需要的字符串。这是我发送Arraylist的代码:

 for(int i=0; i<AssignmentTitles.size(); i++)
        {
            System.out.println(AssignmentTitles.get(i));

        }
        Intent localIntent;
        localIntent = new Intent(CourseFolder.this, Assignments.class);
        Bundle b=new Bundle();
        b.putStringArrayList("titles",AnnouncementTitles);
        b.putStringArrayList("links",AnnouncementLinks);
        localIntent.putExtras(b);

        startActivity(localIntent);

以下是接收活动代码:

    AssignmentTitles = getIntent().getStringArrayListExtra("titles");
    AssignmentLinks = getIntent().getStringArrayListExtra("links");
    System.out.println("size: " + AssignmentLinks.size() + "TITLES:");
    for(int i=0; i<AssignmentTitles.size(); i++)
    {
        System.out.println(AssignmentTitles.get(i));

    }
    setListAdapter( new ArrayAdapter<String(Assignments.this,
    android.R.layout.simple_list_item_1,
    AssignmentTitles));

问题是我在项目的另一部分中使用完全相同的代码并且它完美地运行,可能是什么问题?

2 个答案:

答案 0 :(得分:1)

试试这种方式

AssignmentTitles = getIntent().getExtras().getStringArrayList("titles");
        AssignmentTitles = getIntent().getExtras().getStringArrayList("links");

答案 1 :(得分:0)

首先使用Intent.getExtras()获取Bundle,然后提取数组列表。