我希望仅从另一个Activity启动活动,因此我尝试检查此活动是否从该活动启动。如果不是,我想禁用字段并弹出警报。但无论我如何尝试检查这一点,我都会得到一个NullPointerException
这是我的尝试。
Intent intent = this.getIntent();
if (intent != null && intent.getStringExtra("uid").equals(null)) {
showAlert();
disableFields();
} else {
mUID = getIntent().getStringExtra("uid");
}
我怎样才能重构这一点?
这是我的NPE
答案 0 :(得分:1)
如果您的字符串为空,请将您的if条件编辑为
if(intent != null && intent.getStringExtra("uid")!=null)
答案 1 :(得分:1)
intent.getStringExtra("uid").equals(null)
无法将您从NullPointerException
保存起来,因为如果您没有额外使用密钥&#34,则您将在空引用上调用方法; UID&#34 ;.您可以使用hasExtra()方法检查该额外内容是否与Intent
一起传递。