2011-10-13 51 views
0

我总共有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从第二个活动获取数据。但是当我从任何活动传递数据时,这两个额外内容都不为null! 我做错了什么?

+0

因此两者getExtras()被称为第三活动内?我能否看到代码如何适合第三个活动? –

+0

是的,extras和extras2在第三个活动,但是当我运行该程序两个额外尝试检索数据,但只有一个活动有数据发送不是两个 –

+0

Bundle extras = getIntent()。getExtras(); //来自第一个活动的项目 if(extras!= null){ day = extras.getInt(“day”); month = extras.getInt(“month”); year = extras.getInt(“year”); } Bundle extras2 = .getExtras(); //来自第二活动的项目 if(extras2!= null){ day = extras2.getInt(“Hday”); month = extras2.getInt(“Hmonth”); year = extras2.getInt(“Hyear”); } //多数民众赞成代码(我不能回答我的问题:/) –

回答

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); 

然后,在第三活动:

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

哦yeeeeaaa !!!!这正是我想要的......非常感谢你! –

+0

很高兴帮助和欢迎堆栈溢出!不要忘记检查最适合你的答案:) –

0

传递数据的一个束

第一活性将例如具有在该束的三个值,则第二个检索从包和adds或“追加”到第二活动最后在数据您可以从第二个活动中将数据作为单个数据包检索到的第三个活动。

+0

我不明白你在说什么,我想要做的是将数据从activity1&activity2传递到activity3 ... –

相关问题