您好我是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 然后我点击后退我的应用停止工作空指针异常在上面的代码行中抛出了strong>。
答案 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