将数据从两个活动传递到第三个

时间:2011-10-13 15:43:12

标签: java android android-activity

我共有3个活动。我从第一个活动传递数据:

 Intent i = new Intent(getApplicationContext(), History.class);
        i.putExtra("day", mDay);
        i.putExtra("month", mMonth+1);
        i.putExtra("year", mYear);
        startActivity(i);

获取数据:

Bundle extras = getIntent().getExtras(); 
    if(extras !=null) { .......

现在我传递了第二个活动的数据:

Intent i = new Intent(getApplicationContext(), History.class);
                i.putExtra("Hday", mDay);
                i.putExtra("Hmonth", mMonth);
                i.putExtra("Hyear", mYear);
                startActivity(i);

并从第二项活动中获取数据:

Bundle extras2 = getIntent().getExtras(); 
    if(extras2 !=null) {

因此,我有额外的东西从第一个活动中获取数据,而extras2从第二个活动中获取数据。但是当我从任何活动传递数据时,两个额外的都不是空的! 我做错了什么?

2 个答案:

答案 0 :(得分:0)

将数据传递到一个包

第一个活动例如在包中有三个值,然后第二个活动从包中检索数据,adds或'追加'到第二个活动,最后在第三个活动中,你可以检索数据作为第二项活动的单一捆绑。

答案 1 :(得分:0)

问题是你的第三个活动无法知道发送捆绑包的活动。您需要添加一个字段来标识此类型的捆绑包,以便您可以相应地进行处理。例如,在活动1中:

Intent i = new Intent(getApplicationContext(), History.class);
        i.putExtra("activity", (int)1);
        i.putExtra("day", mDay);
        i.putExtra("month", mMonth+1);
        i.putExtra("year", mYear);
        startActivity(i);

然后在第3次活动中:

Bundle extras = getIntent().getExtras(); 
    if(extras !=null) { 
       int typeAct = extras.getInt("activity");
       if (typeAct == 1) {
.......