检查是否设置了额外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"; }