アクティビティを開始するときに追加が渡されたかどうかを確認する方法はありますか?
私は(アクティビティの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 intent = getIntent();
if (intent.hasExtra("bookUrl")) {
bookUrl = b.getString("bookUrl");
} else {
// Do something else
}
_
また、 Intent.getStringExtra(String name)
をインテントで直接使用して、余分なものが渡されなかった場合にNullPointerException
を処理します。
よく似た問題がありました。私の場合、bundle.getString()がnullに等しいかどうかをチェックすると、nullポイント例外が発生しました。
これが私の場合の解決方法です:
Intent intent = getIntent();
if(intent.hasExtra("nomeUsuario")){
bd = getIntent().getExtras();
if(!bd.getString("nomeUsuario").equals(null)){
nomeUsuario = bd.getString("nomeUsuario");
}
}
if (this.getIntent().getExtras() != null && this.getIntent().getExtras().containsKey("yourKey")) {
// intent is not null and your key is not null
}
エクストラ!= nullの場合はチェックする必要があると思います
Bundle extras = getIntent().getExtras();
if (extras != null) {
String extraStr = extras.getString("extra");
}else {
extraStr = "extra not set";
}
私はあなたの場合にこのソリューションを使用します。
String extraStr;
try {
extraStr = getIntent().getExtras().getString("extra");
} catch (NullPointerException e ) {
extraStr = "something_else";
}