检查Activity是否已启动Intent并且是否传入String Extra

时间:2014-08-18 19:24:37

标签: android android-intent

我希望仅从另一个Activity启动活动,因此我尝试检查此活动是否从该活动启动。如果不是,我想禁用字段并弹出警报。但无论我如何尝试检查这一点,我都会得到一个NullPointerException

这是我的尝试。

Intent intent = this.getIntent();
        if (intent != null && intent.getStringExtra("uid").equals(null)) {
            showAlert();
            disableFields();
        } else {            
            mUID = getIntent().getStringExtra("uid");
        }

我怎样才能重构这一点?

这是我的NPE Null Pointer Exception

2 个答案:

答案 0 :(得分:1)

如果您的字符串为空,请将您的if条件编辑为

if(intent != null && intent.getStringExtra("uid")!=null)

答案 1 :(得分:1)

intent.getStringExtra("uid").equals(null)无法将您从NullPointerException保存起来,因为如果您没有额外使用密钥&#34,则您将在空引用上调用方法; UID&#34 ;.您可以使用hasExtra()方法检查该额外内容是否与Intent一起传递。