我有3个活动,我们将它们称为A,B和C.A和B都具有将视图发送给C的意图。设计一个C来自不同事物的设计关于C的活动。我从一个传递这样的数据,以C:Android - 在两个活动之间传递数据获取NullPointerException
Intent intent = new Intent(this, C.class);
intent.putExtra("Action", "A");
startActivity(intent);
用C的onCreate方法
然后,我有这样的事情:
Bundle extras = getIntent().getExtras();
if (extras.getString("Action").equals("A")) {
//DO SOMETHING
}
然后我从B到CI有
Intent intent = new Intent(this, C.class);
startActivity(intent);
然后我得到NullPointerException,我猜这是因为我从B到C时未指定字符串“Action”。
现在我可以在这种情况下为B添加一行,但是,如果有更多的活动或一个大型的项目,这不会是好事,因为对于每个活动去一个我会需要这个。
我该如何拥有它,所以我不会在没有添加“动作”刺激活动B的情况下得到此异常?
感谢您的帮助提前。
编辑
如果我有这样的从A到C
Intent intent = new Intent(this, C.class);
intent.putExtra("Action", "A");
intent.putExtra("Action2", "A");
startActivity(intent);
这从B到C
Intent intent = new Intent(this, C.class);
intent.putExtra("Action", "B");
startActivity(intent);
然后在C中的onCreate失败去当从B到C:
Bundle extras = getIntent().getExtras();
if (extras != null) {
if (extras.getString("Action").equals("A")) {
//DO SOMETHING
}
else if (extras.getString("Action2").equals("A")) {
//DO Stuuf
}
}
你从B的意图没有额外的,所以当你调用extras.getString()你得到一个NPE。在下面的@Remees M Syde中检查null。 – Luis 2014-12-04 05:35:24