我共有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从第二个活动中获取数据。但是当我从任何活动传递数据时,两个额外的都不是空的! 我做错了什么?
答案 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) {
.......