检查是否设置了额外function

有没有什么办法来检查是否有一个额外的时候已经通过了一个活动?

我想做一些像(在活动中的onCreate() ):

  Bundle extras = getIntent().getExtras(); String extraStr = extras.getString("extra"); if (extraStr == null) { extraStr = "extra not set"; } 

但是这是抛出一个java.lang.NullPointerException

谢谢。

使用Intent.hasExtra(String name)检查是否在意图中传入了一个name

此外,如果没有传递任何额外内容,则直接在意图上使用Intent.getStringExtra(String name)来处理NullPointerException

那么,我有类似的问题。 在我的情况下,当我检查我的bundle.getString()是否等于 null时,发生空点exception。

这里是我如何解决它:

 Intent intent = getIntent(); if(intent.hasExtra("nomeUsuario")){ bd = getIntent().getExtras(); if(!bd.getString("nomeUsuario").equals(null)){ nomeUsuario = bd.getString("nomeUsuario"); } } 

我会在你的情况下使用这个解决scheme。

 String extraStr; try { extraStr = getIntent().getExtras().getString("extra"); } catch (NullPointerException e ) { extraStr = "something_else"; } 
 if (this.getIntent().getExtras() != null && this.getIntent().getExtras().containsKey("yourKey")) { // intent is not null and your key is not null } 

我想你需要检查什么时候extras!= null

 Bundle extras = getIntent().getExtras(); if (extraStr != null) { String extraStr = extras.getString("extra"); }else { extraStr = "extra not set"; }