正确地在活动之间传递值

时间:2016-05-14 09:19:06

标签: android

您好我是Android的新手,我有一个问题,我不知道如何解决。我有3项活动, ActivityMain ActivityA ActivityB 。 ActivityMain是开始活动。从ActivityMain,用户可以移动到ActivityA,当他们这样做时,一个值从ActivityMain传递到ActivityA,如下所示:

Intent i = new Intent(context, ActivityA.class);
i.putExtra("eventId", eventId);
startActivity(i);

ActivityA 的onCreate方法中,我有一个 init()函数,可以得到这样的值:

public void init() {
  this.eventId = Integer.parseInt(getIntent().getExtras().get("eventId").toString());
}

现在这是我的问题,出于某种原因,当我从 ActivityA 导航到 ActivityB 然后我点击后退我的应用停止工作空指针异常

3 个答案:

答案 0 :(得分:2)

将数据从“Extra”缓存到变量 - 使用活动中的onResume()方法设置任何配置。

答案 1 :(得分:1)

如果你传递整数尝试像这样的

this.eventId = getIntent().getExtras().getInt("eventId");    

或者如果你传递字符串。试试这个

this.eventId = Integer.parseInt(getIntent().getExtras().getString("eventId"));

答案 2 :(得分:0)

问题是您是直接将数据传递给intent并尝试从intent bundle访问它而不是intent。使用intent.getIntExtra("eventId")

替换:

Integer.parseInt(getIntent().getExtras().get("eventId").toString());

eventId = getIntent().getIntExtra("eventId");

其次,如果eventId是整数,则使用intent.getIntExtra,如果eventId是string,则使用intent.getStringExtra